HTML canvas getImageData() 方法
定义和用法
getImageData()
方法返回 ImageData 对象,该对象拷贝了画布指定矩形的像素数据。
对于 ImageData 对象中的每个像素,都存在着四方面的信息,即 RGBA 值:
- R - 红色 (0-255)
- G - 绿色 (0-255)
- B - 蓝色 (0-255)
- A - alpha 通道 (0-255; 0 是透明的,255 是完全可见的)
color/alpha 以数组形式存在,并存储于 ImageData 对象的 data အချက်အလက်များကို အသုံးပြုလျှင်
အကြောင်းကြားချက်:color/alpha အချက်အလက်များကို လုပ်ဆောင်ပြီးသည့် အခါ၌ သင် ပြုံစံအချက်အလက်များကို အသုံးပြုနိုင်ပါသည် putImageData() ပုံစံကို ဖန်တီးပြီး လက်မှတ်ပုံပေါင်းသို့ ပြုပြင်ပေးသည်。
ဘာသာပြန်:
အောက်ပါ ကို အသုံးပြုလျှင် ပြန်လည်သတင်းပေးသော ImageData အား ပထမ ပိုင်းပုံစံ/alpha သတင်း ကို ရရှိနိုင်ပါသည်:
red=imgData.data[0]; green=imgData.data[1]; blue=imgData.data[2]; alpha=imgData.data[3];
အကြောင်းကြားချက်:သင့် ဘရောက်သုတ် က getImageData() ကို အသုံးပြု၍ ပုံရိုက် ပေါ်ရှိ အမှတ်အသား တချို့ အရေးအသား ကို ပြန်လည် ပြောင်းလဲစေသည်။
အမှတ် တချို့ အမှတ်အသား ကို သို့မဟုတ် အရေးအသား ကို ပြန်လည် ပြောင်းလဲစေသည့် အတွက် အထူး ပုံစံ ကို အသုံးပြုစေသည်။
red=255-old_red; green=255-old_green; blue=255-old_blue;
(အောက်ပါ “ကျွန်တော်က ကျင်းပပါ” အကိုးအကာ ကို ကြည့်ပါ)。
အမျိုးမျိုး အကိုးအကာ
အမှတ် 1
အောက်ပါ ကြောင်းရာ ကို getImageData() ကို အသုံးပြု၍ ပုံရိုက် ပေါ်ရှိ အမှတ်အသား တချို့ အမှတ်အသား အချက်အလက် ကို ပြန်လည် ပြုလုပ်၍ ပုံရိုက် ပေါ်သို့ ပြန်ပို့စေသည်။
var c=document.getElementById("myCanvas"); var ctx=c.getContext("2d"); ctx.fillStyle="red"; ctx.fillRect(10,10,50,50); function copy() } var imgData=ctx.getImageData(10,10,50,50); ctx.putImageData(imgData,10,70); }
အကြောင်းကြားချက်:ဘရောက်သုတ် အောက်ပိုင်း အမျိုးမျိုး အကိုးအကာ ပြုပြင်ထားပါ။
ပြောင်းလဲ အုတ်
var imgData=context.getImageData(x,y,width,height);
သဘော ပြက်
သဘော | ဖော်ပြ |
---|---|
x | ပြန်လည် ပြုလုပ် သည့် ဟန်ချက် အရှေ့ဘက် အခြေခံ ခွဲခ�ားချက် |
y | ပြန်လည် ပြုလုပ် သည့် ဟန်ချက် အရှေ့ဘက် အမြောက် အခြေခံ ခွဲခြားချက် |
width | ပြန်လည် ပြုလုပ် သည့် ဟန်ချက် အကျယ် |
height | ပြန်လည် ပြုလုပ် သည့် ဟန်ချက် အမြင့် |
ပိုမို အမျိုးမျိုး အကိုးအကာ
အမှတ် 2
အသုံးပြု ရမည့် ပုံရိုက်:

getImageData() ကို အပ်ဘား ပုံရိုက် ပေါ်ရှိ အမှတ်အသား တချို့ အရေးအသား ကို ပြန်လည် ပြောင်းလဲစေသည်။
JavaScript:
var c=document.getElementById("myCanvas"); var ctx=c.getContext("2d"); var img=document.getElementById("tulip"); ctx.drawImage(img,0,0); var imgData=ctx.getImageData(0,0,c.width,c.height); ပြန်လည် အရေးအသား for (var i=0;i<imgData.data.length;i+=4) } imgData.data[i]=255-imgData.data[i]; imgData.data[i+1]=255-imgData.data[i+1]; imgData.data[i+2]=255-imgData.data[i+2]; imgData.data[i+3]=255; } ctx.putImageData(imgData,0,0);
ဘာသာ အပြောရှင်
အချက်အလက် အရာများ သည် ထို လက်တင် ကို ပထမဆုံး အပြောရှင် ဘာသာ ကို ပေးသော ဘာသာ ကို ညွှန်ပြသည်。
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome | Edge | Firefox | Safari | Opera |
4.0 | 9.0 | 3.6 | 4.0 | 10.1 |
မှတ်ချက်:Internet Explorer 8 နှင့် ပိုမိုကြိုးစား ပြီး <canvas> အချက်အလက် မမှောက်ရှိပါ။