src
DOM 속성을 사용하여 이미지 세트를 지정할 수 없기 때문에 -webkit-image-set
을 사용하여 이미지 내용을 지정합니다. :"src"가 아닌 "content"또는 "background-image"로 지정된 drawImage를 사용할 수 없습니다.
<img id="imgTest" />
...
#imgTest {
background-image: -webkit-image-set(url(icon1x.jpg) 1x,url(icon2x.jpg) 2x);
}
장치 픽셀 비율에 따라 이미지 내용이 잘로드됩니다. 이제 이미지를 캔버스에 덤프해야합니다. 여기에 내 코드입니다 :이 시점에서
var c = document.createElement("canvas");
var ctx = c.getContext("2d");
c.width = 20;
c.height = 20;
ctx.drawImage(document.getElementById("imgTest"), 0, 0);
// Let's see what we've got in the canvas.
var data = ctx.getImageData(0, 0, 2, 2).data;
, data
가 0으로 채워진 배열입니다 (실제 이미지가 명확하게 비어 있지 않습니다). #imgTest
의 src
속성을 예 : icon2x.png
, data
내용은 실제 이미지를 반영합니다.
-webkit-image-set
을 포함하는 이미지의 내용을 cavas에 덤프 할 수 있다면 어떤 생각이 들겠습니까?
__ "src DOM 속성을 사용하여 이미지 세트를 지정할 수 없으므로 이미지 내용을 지정하기 위해 -webkit-image-set을 사용하고 있습니다 ..."__ –
@Alexander Pavlov Ohhh. 연구, 나는 지금 당신이 말하는 것을 알고 있습니다. 대답은 여전히 아니오입니다. 귀하의 코드에서와 마찬가지로 이미지 세트 (모든 접두사 포함)는 CSS를 통해 백그라운드 이미지 용입니다. 따라서 배경 데이터는 요소에 저장된 실제 정보와 거의 관련이 없습니다. drawImage() 함수는 이미지의 내용을 캔버스에 넣습니다. 따라서 이미지에 대한 이미지 콘텐츠가 없으므로 데이터를 넣을 필요가 없습니다. 내 사과. 나는 당신이 성취하려는 것을 정확히 알지 못했습니다. 비록 당신이 URL과 js에 액세스 할 수 있다면 내 원래의 솔루션은 여전히 약자. – TheCrzyMan
예, 힌트를 주셔서 감사합니다. 그래도 이미지 세트로 이미지를 스냅 샷 할 수 있다면 좋을 것입니다 ... –