1
我有各種十六進制RRGGBBAA顏色作爲熱圖貼圖漸變中的停止值,但我注意到爲某些停止設置不同的Alpha值並不會改變我的代碼中不透明,我總是得到相同的視圖 - 儘管將最後兩個alpha位設置爲00,因爲某些原因,0.0不透明度可以工作。的RRGGBBAA值被寫入這樣的:以十六進制方式更改不透明度不起作用-heat map stop gradient-
0xaa00007f
(最後兩個比特,7F應爲0.5的不透明度)
0xaa0000ff
(ff爲1.0的不透明度)
的setGradientStops函數,它的停止值是像這樣的 - 這是從熱圖庫,不是我的代碼 -
setGradientStops: function(stops) {
var ctx = document.createElement('canvas').getContext('2d');
var grd = ctx.createLinearGradient(0, 0, 256, 0);
for (var i in stops) {
grd.addColorStop(i, 'rgba(' +
((stops[i] >> 24) & 0xFF) + ',' +
((stops[i] >> 16) & 0xFF) + ',' +
((stops[i] >> 8) & 0x7F) + ',' +
((stops[i] >> 0) & 0x7F) + ')');
}
ctx.fillStyle = grd;
ctx.fillRect(0, 0, 256, 1);
this.gradient = ctx.getImageData(0, 0, 256, 1).data;
}