Последние учебники веб-разработки
×

JavaScript Справка

обзор

JavaScript

JS строка JS Число JS операторы JS Заявления JS математический JS Дата JS массив JS логический JS RegExp JS Глобальный JS конверсионный

браузер BOM

Window Navigator Screen History Location

HTML DOM

DOM Документ DOM элементы DOM Атрибуты DOM Мероприятия DOM Стиль

HTML Объекты

<a> <abbr> <address> <area> <article> <aside> <audio> <b> <base> <bdo> <blockquote> <body> <br> <button> <canvas> <caption> <cite> <code> <col> <colgroup> <datalist> <dd> <del> <details> <dfn> <dialog> <div> <dl> <dt> <em> <embed> <fieldset> <figcaption> <figure> <footer> <form> <head> <header> <h1> - <h6> <hr> <html> <i> <iframe> <img> <ins> <input> button <input> checkbox <input> color <input> date <input> datetime <input> datetime-local <input> email <input> file <input> hidden <input> image <input> month <input> number <input> password <input> radio <input> range <input> reset <input> search <input> submit <input> text <input> time <input> url <input> week <kbd> <keygen> <label> <legend> <li> <link> <map> <mark> <menu> <menuitem> <meta> <meter> <nav> <object> <ol> <optgroup> <option> <output> <p> <param> <pre> <progress> <q> <s> <samp> <script> <section> <select> <small> <source> <span> <strong> <style> <sub> <summary> <sup> <table> <td> <th> <tr> <textarea> <time> <title> <track> <u> <ul> <var> <video>

Другие объекты

CSSStyleDeclaration


 

HTML canvas getImageData() Method

<Холст объекта

пример

Ниже код копирует данные пикселя для указанного прямоугольника на холсте с 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);
}
Попробуй сам "

Поддержка браузеров

Числа в таблице указать первую версию браузера, который полностью поддерживает метод.

метод
getImageData() 4,0 9,0 3,6 4,0 10,1

Определение и использование

getImageData() метод возвращает объект ImageData , который копирует пиксельные данные для указанного прямоугольника на холсте.

Note: Объект ImageData не картина, это указывает часть (rectangle) на холсте, и содержит информацию о каждом пикселе внутри этого прямоугольника.

Для каждого пикселя в объекте ImageData есть четыре части информации, значение RGBA:

R - красный цвет (from 0-255)
G - цвет зеленый (from 0-255)
B - цвет синий (from 0-255)
A - альфа - канал (from 0-255; 0 is transparent and 255 is fully visible)

Информацию о цвете / альфа удерживается в массиве, и хранится в данном свойстве объекта ImageData.

Tip: После того, как вы манипулировали информацию цвета / альфа в массиве, вы можете скопировать данные изображения обратно на холст с putImageData() методом.

Example:

Код для получения цвета / альфа информации первого пикселя в возвращенном объекте ImageData:

red=imgData.data[0];
green=imgData.data[1];
blue=imgData.data[2];
alpha=imgData.data[3];

Попробуй сам

Tip: Вы можете также использовать getImageData() метод , чтобы инвертировать цвет каждого пиксела изображения на холсте.

Цикл по всем пикселям и изменять значения цвета, используя эту формулу:

red=255-old_red;
green=255-old_green;
blue=255-old_blue;

Смотрите ниже "Try it Yourself" пример!


JavaScript Синтаксис

Синтаксис JavaScript: context . getImageData( x,y,width,height ) ;

Значения параметров

параметр Описание
x Координаты х (in pixels) в верхнем левом углу , чтобы начать копию с
y Координата (in pixels) в верхнем левом углу , чтобы начать копию с
width Ширина прямоугольной области вы будете копировать
height Высота прямоугольной области вы будете копировать

Примеры

Еще примеры

Изображение использовать:

Крик

пример

Используйте getImageData() , чтобы инвертировать цвет каждого пиксела изображения на холсте:

YourbrowserdoesnotsupporttheHTML5canvastag.

JavaScript:

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
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);
Попробуй сам "

<Холст объекта