16進数で配列からイメージを生成することはできますか?Javascript Image from Array
この配列:[ "#FFFFFF"、 "#1 FF0000"、 "#1 FFFF00"]
なる出力最初の画素が色を有する画像: "#FFFFFF"、第二:「#1 FF0000を"、#3:"#ffff00 "など...
私の方法は、すべて背景色が異なるdiv要素を作成することでしたが、巨大な配列を持っていると本当に遅いです...
var index;
for (index = 0; index < array.length; index++) {
var indexx;
$("container").append("<div style='background-color: " + array[length] + "; position: absolute; top: 0; left: " + index + ";'></div>");
}
:
私の方法は、次のようになります
私は必要なもの、このようなものです:http://jsfiddle.net/Evilzebra/9xnn8tw5/しかしaswell色で...
編集:
//create some random data for example
var data = [];
for(var i = 0, l = 1000000; i < l; i++){
data.push(Math.round(Math.random()*255));
}
var image = document.getElementById('i');
//display image only after it's loaded
image.onload = function(){this.style.display='block'}.bind(image);
//and finally set the .src
image.src = dataToBase64(data, 1000, 1000);
function dataToBase64(colors, width, height){
var canvas = document.createElement('canvas'),
ctx = canvas.getContext('2d'),
color;
//setup canvas
canvas.width = width,
canvas.height = height;
//grab data
var data = ctx.getImageData(0, 0, width, height),
_data = data.data; //simple speed optimization
//place data
for(var i = 0, l = _data.length; i < l; i+3){
_data[i] = colors[i],
_data[i+1] = color[i+1],
_data[i+2] = color[i+2],
_data[i+3] = 255;
}
ctx.putImageData(data, 0, 0);
//return base64 string
return canvas.toDataURL();
}
は、画素にランダムな色を与える必要があります...しかし、それはdoesntの作品...
...上記のフィドルを参照し、そこにコードを貼り付け
[キャンバスによるピクセル操作](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Pixel_manipulation_with_canvas)? –
これは 'キャンバス'のためのものです。各ピクセルを個別にターゲティングすることができます。 PSの配列のサイズはおそらく減速の原因ではなかった。おそらくページに配置しようとしていた要素の数がありました。キャンバスを使用して、ピクセルカラーの大きな配列からイメージを作成しました。非常に高速です。 – Andy
私が必要とするのは次のようなものです:http://jsfiddle.net/Evilzebra/9xnn8tw5/しかし、色も...どうすればいいか教えてください。私はキャンバスについて何も知りません... – Milan