JavascriptでCanvasにputImageData画像を別のCanvasにリサイズしたいです。
html
1<canvas id="src_canvas" width="352" height="288"></canvas> 2<canvas id="resize_canvas" width="176" height="144" ></canvas>
javascript
1var canvas = document.getElementById('src_canvas') 2var ctx = canvas.getContext('2d') 3var imageData = ctx.createImageData(width, 1) 4var canvas_resize = document.getElementById('resize_canvas') 5var ctx_resize = canvas_resize.getContext('2d') 6 7var buf = new Uint16Array(data) // dataの宣言や代入は省略してますが、元のCanvasには正常に表示されています。 8var pixels = imageData.data 9for (var y = 0; y < (buf.length) / width; y += 1) { 10 var base = 0 11 for (var x = 0; x < width; x += 1) { 12 var c = x + y * width 13 pixels[base + 0] = (buf[c] & 0xf800) >> 8 | (buf[c] & 0xe000) >> 13 14 pixels[base + 1] = (buf[c] & 0x07e0) >> 3 | (buf[c] & 0x0600) >> 9 15 pixels[base + 2] = (buf[c] & 0x001f) << 3 | (buf[c] & 0x001c) >> 2 16 pixels[base + 3] = 255 17 base += 4 18 } 19 ctx.putImageData(imageData, 0, y) 20} 21// ここまでで「src_canvas」には正常に表示されています。 22// 以下で「resize_canvas」にリサイズして別のCanvasに表示したいのですが、表示されません。 23ctx_resize.drawImage(canvas, 0, 0, (width * 2), (hight * 2)) 24// こちらでもNG ctx_resize.drawImage(canvas, 0, 0, width, hight, 0, 0, (width * 2), (hight * 2))
おそらく、src_canvasのCanvasにputImageDataで表示されている情報が取り込めないために何も表示されないかと考えていますがどのようにすれば良いかご教授ください。
回答2件
あなたの回答
tips
プレビュー