Metode createImageData() dalam HTML canvas
Definisi dan penggunaan
createImageData()
Metode untuk membuat objek ImageData kosong baru. Nilai piksel default objek baru adalah hitam transparen.
Untuk setiap piksel dalam objek ImageData, terdapat empat jenis informasi, yaitu nilai RGBA:
- R - Merah (0-255)
- G - Hijau (0-255)
- B - Kuning (0-255)
- A - 通道 alpha (0-255; 0 ialah yang terang, 255 ialah yang dapat dilihat sepenuhnya)
Jadi, hitam transparen diwakili (0,0,0,0).
warna/alpha ada dalam bentuk array, dan kerana array mengandungi empat buah maklumat untuk setiap piksel, saiz array adalah empat kali saiz objek ImageData. (Ada cara yang lebih mudah untuk mendapatkan saiz array, iaitu menggunakan ImageDataObject.data.length)
Array yang mengandungi maklumat warna/alpha disimpan di dalam objek ImageData di data aturan.
Peringatan:Selepas operasi selesai terhadap maklumat warna/alpha dalam array, anda boleh menggunakan putImageData() Kaedah akan menyalin data imej ke atas kertas lukis.
Contoh:
Sintaks ini akan menjadikan piksel pertama dalam objek ImageData menjadi merah:
imgData = ctx.createImageData(100, 100); imgData.data[0] = 255; imgData.data[1] = 0; imgData.data[2] = 0; imgData.data[3] = 255;
Sintaks ini akan menjadikan piksel kedua dalam objek ImageData menjadi merah:
imgData = ctx.createImageData(100, 100); imgData.data[4] = 0; imgData.data[5] = 255; imgData.data[6] = 0; imgData.data[7] = 255;
Contoh
Buat objek ImageData 100x100 piksel dengan setiap piksel berwarna merah, lalu taruhkannya ke atas kertas lukis:
JavaScript:
var c = document.getElementById("myCanvas"); var ctx = c.getContext("2d"); var imgData =ctx.createImageData(100, 100); for (var i = 0; i < imgData.data.length; i += 4) { imgData.data[i+0] = 255; imgData.data[i+1] = 0; imgData.data[i+2] = 0; imgData.data[i+3] = 255; } ctx.putImageData(imgData, 10, 10);
Sintaks
Terdapat dua versi daripada kaedah createImageData():
1. 以指定的尺寸(以像素计)创建新的 ImageData 对象:
var imgData=context.createImageData(width,height);
2. 创建与指定的另一个 ImageData 对象尺寸相同的新 ImageData 对象(不会复制图像数据):
var imgData=context.createImageData(imageData);
参数值
参数 | 描述 |
---|---|
width | ImageData 对象的宽度,以像素计。 |
height | ImageData 对象的高度,以像素计。 |
imageData | 另一个 ImageData 对象。 |
浏览器支持
表中的数字注明了首个完全支持该属性的浏览器版本。
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome | Edge | Firefox | Safari | Opera |
4.0 | 9.0 | 3.6 | 4.0 | 10.1 |
注释:Internet Explorer 8 及其更早版本不支持 <canvas> 元素。