مетод getImageData() کانواس HTML
تعریف و استفاده
getImageData()
روش ImageData برگردانده شده، دادههای پیکسلهای مربوط به مستطیل مشخص شده روی کanvas را کپی میکند.
برای هر پیکسل در ImageData، چهار نوع اطلاعات وجود دارد، یعنی RGBA:
- R - قرمز (0-255)
- G - سبز (0-255)
- B - آبی (0-255)
- A - کانال آلفا (0-255; 0 شفاف است و 255 به طور کامل قابل مشاهده است)
رنگ/آلفا به صورت آرایه وجود دارد و در ImageData ذخیره شده است data ویژگی استفاده کنید.
توجه:بعد از انجام عملیات بر روی اطلاعات color/alpha در آرایه، میتوانید از putImageData() روش برای کپی کردن دادههای تصویر به روی کanvas.
مثال:
مطالب زیر کد برای دریافت اطلاعات رنگ/آلفا اولین پیکسل 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 | موقعیت 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); // تغییر رنگ برای (مثال 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);
پشتیبانی مرورگر
اعداد در جدول نشاندهنده نسخه اولین مرورگر پشتیبان از این ویژگی هستند.
کروم | ایdge | فایرفاکس | سافاری | اپرا |
---|---|---|---|---|
کروم | ایdge | فایرفاکس | سافاری | اپرا |
4.0 | 9.0 | 3.6 | 4.0 | 10.1 |
توضیح:نسخههای 8 و قدیمیتر اینترنت اکسپلورر از عنصر <canvas> پشتیبانی نمیکنند.