我似乎無法弄清楚如何在html5畫布上縮放像素。這是我到目前爲止的地方。javascript 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.請注意,圖像翻倍並且只填充畫布的一半。
EDIT2: 我做了展示我遇到了奇怪的行爲至少一個網頁。
@Scott - 不知道你在做什麼縮放 – fazo 2011-04-02 22:03:57
好吧,我正在採取幀緩衝,這是一個逐個像素的圖像表示。它是單層數組,可通過'n = row * width + col'訪問。我試圖把它繪製到圖像數據表上,但是按像素高度和寬度縮放。 – Scott 2011-04-02 22:08:03
@Scott - 你是否試圖通過縮放因子將整個圖像縮放到新的大小或每個像素? – fazo 2011-04-02 22:20:03