مетод HTML canvas getImageData()
تعریف و استفاده
getImageData()
روش ImageData برگردانده میکند، که دادههای پیکسل مربوط به مستطیل مشخص شده بر روی صفحه باکس را کپی میکند.
برای هر پیکسل در ImageData، چهار نوع اطلاعات وجود دارد، یعنی RGBA:
- R - قرمز (0-255)
- G - سبز (0-255)
- B - آبی (0-255)
- A - کانال افتراضی (0-255; 0 شفاف است و 255 کاملاً قابل مشاهده است)
رنگ/الافتراضی به صورت آرایه وجود دارد و در ImageData ذخیره میشود data ویژگی استفاده کنید.
توضیح:بعد از انجام عملیات بر روی اطلاعات رنگ/الافتراضی در آرایه، میتوانید از putImageData() روش تصویر دادهها را به صفحه باکس کپی میکند.
مثال:
معلومات رنگ/الافتراضی اولین پیکسل ImageData برگردانده میشود:
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() دادههای پیکسلهای یک مستطیل مشخص از کانواس را کپی میکند و سپس دادههای تصویر را با استفاده از putImageData() به کانواس برمیگرداند:
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 | موقعیت x بالا سمت چپ شروع کپی. |
y | موقعیت x بالا سمت چپ شروع کپی. |
width | پرچم محدوده مستطیلی که میخواهید کپی کنید. |
height | ارتفاع محدوده مستطیلی که میخواهید کپی کنید. |
مثالهای بیشتری
مثال 2
تصویر مورد استفاده:

از getImageData() برای وارون کردن رنگ هر پیکسل از تصویر روی کانواس استفاده کنید.
جاوااسکریپت:
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); // رنگ وارون برای (دو تا وارiable 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);
پشتیبانی مرورگر
اعداد در جدول نشاندهنده نسخه اولین مرورگری است که از این خاصیت کامل پشتیبانی میکند.
کروم | گرید | افراط | سافاری | اپرا |
---|---|---|---|---|
کروم | گرید | افراط | سافاری | اپرا |
4.0 | 9.0 | 3.6 | 4.0 | 10.1 |
نکته:اینترنت اکسپلورر 8 و نسخههای قدیمیتر از عنصر <canvas> پشتیبانی نمیکنند.