HTML 캔버스 createImageData() 메서드
정의와 사용법
createImageData()
새로운 빈 ImageData 객체를 생성하는 메서드. 새 객체의 기본 픽셀 값은 투명한 검은색입니다.
ImageData 객체의 각 픽셀에 대해, RGBA 값이 네 가지 정보가 있습니다:
- R - 레드 (0-255)
- G - 그린 (0-255)
- B - 블루 (0-255)
- A - 알파 채널 (0-255; 0은 투명하고, 255는 완전히 보이는 것)
따라서, 투명한 검은색은 (0,0,0,0)를 의미합니다。
color/alpha는 배열 형태로 존재하며, 각 픽셀에 대한 네 가지 정보를 포함하기 때문에 배열의 크기는 ImageData 객체의 네 배입니다。(ImageDataObject.data.length를 사용하는 것은 더 간단한 방법입니다)
color/alpha 정보를 포함한 배열은 ImageData 객체의 data 속성 중에서。
푸터 힌트:color/alpha 정보를 배열에서 처리한 후, 다음을 사용할 수 있습니다: 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;
인스턴스
100*100 픽셀의 ImageData 객체를 생성하고, 각 픽셀을 빨간색으로 설정한 후 그림에 추가하세요:
JavaScript:
var c=document.getElementById("myCanvas"); var ctx=c.getContext("2d"); var imgData=ctx.createImageData(100, 100); for (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 객체. |
브라우저 지원
표에서는 이 속성을 최초로 완전히 지원한 브라우저 버전을 나타냅니다.
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome | Edge | Firefox | Safari | Opera |
4.0 | 9.0 | 3.6 | 4.0 | 10.1 |
주의사항:Internet Explorer 8 및 이전 버전은 <canvas> 요소를 지원하지 않습니다.