مетод createImageData() کانواس HTML
تعریف و استفاده
createImageData()
روش ایجاد یک شیء ImageData خالی جدید. ارزش پیشفرض پیکسلهای این شیء سیاه شفاف است.
برای هر پیکسل در شی ImageData، چهار نوع اطلاعات وجود دارد، یعنی ارزش RGBA:
- قرمز R - (0-255)
- سبز G - (0-255)
- آبی B - (0-255)
- آلفا کانال A - (0-255; 0 شفاف است و 255 کاملن قابل مشاهده است)
بنابراین، سیاه شفاف (0,0,0,0) را نشان میدهد.
رنگ/آلفا به صورت آرایه وجود دارد و چون آرایه شامل چهار اطلاعات برای هر پیکسل است، اندازه آرایه چهار برابر اندازه ImageData است. (روش سادهتری برای دریافت اندازه آرایه استفاده از ImageDataObject.data.length است)
آرایهای که شامل اطلاعات رنگ/آلفا است در data ویژگیها استفاده کنید.
توجه:بعد از انجام عملیات بر روی اطلاعات رنگ/آلفا در آرایه، میتوانید از putImageData() این روش دادههای تصویر را به کانواس کپی میکند.
مثال:
این نحوه استفاده باعث تغییر رنگ اولین پیکسل ImageData به قرمز میشود:
imgData=ctx.createImageData(100, 100); imgData.data[0] = 255; imgData.data[1] = 0; imgData.data[2] = 0; imgData.data[3] = 255;
این نحوه استفاده باعث تغییر رنگ دومین پیکسل ImageData به قرمز میشود:
imgData=ctx.createImageData(100, 100); imgData.data[4] = 0; imgData.data[5] = 255; imgData.data[6] = 0; imgData.data[7] = 255;
مثال
یک شیء ImageData با اندازه 100*100 پیکسل ایجاد کنید که هر پیکسل از آن قرمز باشد و آن را روی کانواس قرار دهید:
JavaScript:
var c=document.getElementById("myCanvas"); var ctx=c.getContext("2d"); var imgData=ctx.createImageData(100, 100); برای (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);
نحوه استفاده
دو نسخه از روش createImageData() وجود دارد:
1. ایجاد یک ImageData جدید با اندازه مشخص شده (به صورت پیکسل):
var imgData=context.createImageData(width,height);
2. ایجاد یک ImageData جدید با اندازه مشخص شده (بدون کپی کردن دادههای تصویر):
var imgData=context.createImageData(imageData);
مقدار پارامتر
پارامتر | توضیح |
---|---|
width | عرض ImageData به صورت پیکسل. |
height | ارتفاع ImageData به صورت پیکسل. |
imageData | یک ImageData دیگر. |
پشتیبانی مرورگر
اعداد در جدول نشاندهنده نسخه اولیه مرورگرهایی هستند که از این ویژگی پشتیبانی میکنند.
کروم | ایج | افرادا | سافاری | اپرا |
---|---|---|---|---|
کروم | ایج | افرادا | سافاری | اپرا |
4.0 | 9.0 | 3.6 | 4.0 | 10.1 |
نکته:اینترنت اکسپلورر 8 و نسخههای قدیمیتر از عنصر <canvas> پشتیبانی نمیکنند.