Dun*_*ill 5 javascript html5-canvas
我想将 a 的像素更改HTML5 canvas为一个hsl值。它可以是hsl用户选择的任何值。
我可以用 var imageData = canvas.getImageData(0, 0, 200, 200);
但是该imageData.data数组包含rgba. 实际上数组中的每个值都是一个字节,所以 -
data[0] = r, data[1] = b, data[2] = g, data[3] = a, data[4] = r, data[5] = b, data[6] = g, data[7] = a 等等。
有没有api可以用来操作imageData的?一个api会抽象原始数据,以便 -data[0] = rgba, data[1] = rgba等等?
这可能有类似的方法 - data[0].setValueHSL(60, 100%, 50%);
如果这个 api 不存在,是否有一个类可以创建/表示一个 hsl 值并且可以将值转换为 rgb?
你可以写一个像这样简单的
parseImageData = function(imageData) {
var newImageData = [];
for ( var i = imageData - 1; i>0; i-4) {
newImageData.push([ imageData[i],
imageData[i-1],
imageData[i-2],
imageData[i-3] ]);
}
return newImageData;
}
Run Code Online (Sandbox Code Playgroud)
那么如果你想把它转换回来
parseNewImageData = function ( newImageData ) {
var imageData = [];
for ( var i = newImageData - 1; i>=0; --i) {
imageData.push( imageData[i][0] );
imageData.push( imageData[i][1] );
imageData.push( imageData[i][2] );
imageData.push( imageData[i][3] );
}
return imageData;
}
Run Code Online (Sandbox Code Playgroud)
超级简单,你可以让它专门做你需要的事情!
我希望这有帮助!
| 归档时间: |
|
| 查看次数: |
1013 次 |
| 最近记录: |