HTML5キャンバスでピクセルをスケーリングする方法がわかりません。これまでのところ、私はここにいます。
function draw_rect(data, n, sizex, sizey, color, pitch) {
var c = Color2RGB(color);
for( var y = 0; y < sizey; y++) {
var nn = n * 4 * sizex;
for( var x = 0; x < sizex; x++) {
data[nn++] = c[0];
data[nn++] = c[1];
data[nn++] = c[2];
data[nn++] = 0xff;
}
n = n + pitch;;
}
}
function buffer_blit(buffer, width, height) {
var c_canvas = document.getElementById("canvas1");
var context = c_canvas.getContext("2d");
context.scale(2, 2);
var imageData = context.getImageData(0, 0, context.canvas.width, context.canvas.height);
var n = width * height - 1;
while((n--)>=0) draw_rect(imageData.data, n, pixel, pixel, buffer[n], width);
context.putImageData(imageData, 0, 0);
}
編集: ここでコードを更新しました。何が変わったのかわからない。
多分いくつかの画像が役立つでしょう。最初の画像のピクセル サイズは 1、2 番目のピクセル サイズは 2 です。
Edit2: 私が経験している奇妙な動作の少なくとも 1 つを示す Web ページを作成しました。