أسلوب getImageData () قماش HTML

❮ مرجع قماش HTML

مثال

ينسخ الكود أدناه بيانات البكسل لمستطيل محدد على اللوحة القماشية باستخدام 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);
}

دعم المتصفح

تحدد الأرقام الواردة في الجدول إصدار المتصفح الأول الذي يدعم الطريقة بالكامل.

Method
getImageData() Yes 9.0 Yes Yes Yes

التعريف والاستخدام

تقوم طريقة getImageData () بإرجاع كائن ImageData يقوم بنسخ بيانات البكسل للمستطيل المحدد على لوحة قماشية.

ملاحظة: كائن ImageData ليس صورة ، فهو يحدد جزءًا (مستطيلًا) على اللوحة القماشية ، ويحمل معلومات عن كل بكسل داخل هذا المستطيل.

لكل بكسل في كائن ImageData هناك أربعة أجزاء من المعلومات ، قيم RGBA:

R - اللون الأحمر (من 0-255)
G - اللون الأخضر (من 0-255)
B - اللون الأزرق (من 0-255)
A - قناة ألفا (من 0-255 ؛ 0 شفاف و 255 شفاف مرئي بالكامل)

يتم الاحتفاظ بمعلومات اللون / ألفا في مصفوفة ، ويتم تخزينها في خاصية بيانات كائن ImageData.

نصيحة: بعد معالجة معلومات اللون / ألفا في المصفوفة ، يمكنك نسخ بيانات الصورة مرة أخرى على اللوحة القماشية باستخدام طريقة 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;

انظر أدناه للحصول على مثال "جربها بنفسك"!


بناء جملة JavaScript

بناء جملة JavaScript: السياق .getImageData ( x ، y ، العرض ، الارتفاع ) ؛

قيمه المعامل

Parameter Description
x The x coordinate (in pixels) of the upper-left corner to start copy from
y The y coordinate (in pixels) of the upper-left corner to start copy from
width The width of the rectangular area you will copy
height The height of the rectangular area you will copy

مزيد من الأمثلة

الصورة المراد استخدامها:

الصرخة

مثال

استخدم getImageData () لعكس لون كل بكسل من الصورة على اللوحة القماشية:

لا يدعم متصفحك HTML5canvastag.

جافا سكريبت:

var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
var img = document.getElementById("scream");
ctx.drawImage(img, 0, 0);
var imgData = ctx.getImageData(0, 0, c.width, c.height);

// invert colors
var i;
for (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);

❮ مرجع قماش HTML