최신 웹 개발 튜토리얼
 

HTML canvas getImageData() Method

<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);
}
»그것을 자신을 시도

브라우저 지원

표의 수치는 완전히 방법을 지원하는 제 브라우저 버전을 지정.

방법
getImageData() 9.0

정의 및 사용

getImageData() 메소드는 imageData의 객체를 반환 복사 캔버스에 지정된 구형의 픽셀 데이터를.

참고 : imageData의 객체가 사진 아니라, 캔버스에 부분 (사각형)을 지정하고, 그 사각형 내부의 모든 픽셀의 정보를 보유하고 있습니다.

imageData의 객체의 모든 픽셀에 대한 정보는 RGBA 값의 네 가지가있다 :

R - (255)에서 붉은 색
G - (255)에서 색상 녹색
B - (255)에서 색상 청색
- 알파 채널 (255에서 0은 투명하고, 255은 완전한 표시됨)

컬러 / 알파 정보는 배열로 유지되고, 저장되는 data 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;

에 "그것을 자신을 시도"예를 들어 아래를 참조하십시오!


자바 스크립트 구문

자바 스크립트 구문 : context.getImageData(x,y,width,height);

매개 변수 값

매개 변수 기술
x 왼쪽 위 모서리의 x (픽셀) 좌표에서 복사를 시작합니다
y 왼쪽 위 모서리의 y (픽셀) 좌표에서 복사를 시작합니다
width 복사 할 사각형 영역의 폭
height 복사 할 사각형 영역의 높이

더 예

이미지 사용 :

절규

사용 getImageData() 캔버스에 화상의 각 화소의 색상을 반전 :

YourbrowserdoesnotsupporttheHTML5canvastag.

자바 스크립트 :

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);
»그것을 자신을 시도

<HTML 캔버스 참조