[JQUERY] HTML5 캔버스 Todataurl은 공백을 반환합니다
JQUERYHTML5 캔버스 Todataurl은 공백을 반환합니다
해결법
-
1.내 직감은 VAR ImageData =의 모든 것이 img.onload 함수로 들어가야합니다.
내 직감은 VAR ImageData =의 모든 것이 img.onload 함수로 들어가야합니다.
즉, 관련 부분에서 코드가 다음과 같습니다.
img.onload = function() { canvas.width = width; canvas.height = height; ctx.drawImage(img, 0, 0, width, height); var imageData = ctx.getImageData(0, 0, canvas.width, canvas.height); document.body.appendChild(canvas); //picture gets uploaded // Generate the image data var Pic = canvas.toDataURL("image/png"); console.log(Pic); // => returns base64 value which when tested equivalent to blank Pic = Pic.replace(/^data:image\/(png|jpg);base64,/, "") // Sending image to Server $.ajax({ // … }); }; img.src = datauri;
그 이유는 라인입니다
ctx.drawImage(img, 0, 0, width, height);
이미지가로드 된 후에 올바르게 실행됩니다. 그러나 불행히도이 줄이 실행될 때로드를 기다리지 않습니다.
var imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
모든 후속 라인.
캔버스에 그릴 수 있도록 이미지를로드해야합니다. 캔버스는 getImageData를 호출하기 위해로드 된 이미지를 포함해야합니다.
from https://stackoverflow.com/questions/31193418/html5-canvas-todataurl-returns-blank by cc-by-sa and MIT license
'JQUERY' 카테고리의 다른 글
[JQUERY] jQuery 파일 업로드 플러그인 : 업로드 된 폴더의 구조를 유지할 수 있습니까? (0) | 2020.11.02 |
---|---|
[JQUERY] CSS 선택기와 jQuery 필터 간의 차이점? (0) | 2020.11.02 |
[JQUERY] 변수 이름을 가져옵니다. 자바 스크립트 "반사" (0) | 2020.11.02 |
[JQUERY] JavaScript로 다중 파일 업로드 컨트롤에서 파일 이름 검색 (0) | 2020.11.02 |
[JQUERY] 서버 측 페이징을 사용한 JQGRID 클라이언트 측 정렬 - 데이터가 사라집니다. (0) | 2020.11.02 |