나는 여러 캔버스를 결합한 코드를 하나의 이미지 파일에 저장합니다. 이 기능은 모바일이 아닌 장치에서 작동하지만 모바일 장치에서 테스트 한 결과 이미지가 생성되는 동안 파일을 열면 "_ 이미지에 오류가 있기 때문에 표시 할 수 없습니다"라는 메시지가 표시됩니다. 여기 캔버스가 모바일 장치에서 작동하지 않는 이미지로 저장
이미지로 변환하는 코드입니다 :<script type='text/javascript'>
window.addEventListener('load', function() {
'use strict';
var src = document.getElementById('src');
var dst = document.getElementById('dst');
var dst1 = document.getElementById('dst1');
var input = src.getContext('2d');
var output = dst.getContext('2d');
var output1 = dst1.getContext('2d');
dst.width = dst_w;
dst.height = dst_h;
dst1.width = dst1_w;
dst1.height = dst1_h;
var img=document.getElementById("scream");
input.drawImage(img,0,0);
var sprkl = document.getElementById('sprkl');
var output_s = sprkl.getContext('2d');
input.drawImage(document.getElementById('sparkle'),0,0,150,150);
input.drawImage(document.getElementById('circle'),0,0,<?php echo $lenssize.",".$lenssize.",".$left.",".$top.",".$dia.",".$dia; ?>);
input.drawImage(document.getElementById('circle1'),0,0,<?php echo $lenssize.",".$lenssize.",".$left1.",".$top1.",".$dia1.",".$dia1; ?>);
function gonext() {
var a = document.getElementById('src');
var dataURL = a.toDataURL();
$.post("save.php?filen=<?php echo $filen; ?>", {data: a.toDataURL("image/png")})
window.setTimeout(function() {
document.frmnext.submit();
}, 10000);
}
<div style="position: relative; z-index: 2">
<canvas id="src" width="<?php echo $width; ?>" height="<?php echo $height; ?>"></canvas>
<canvas id="sprkl" style="position: absolute; z-index: 3;"></canvas>
<canvas id="dst" style='position: absolute; z-index: 3'></canvas>
<canvas id="dst1" style='position: absolute; z-index: 3'></canvas>
</div>
모바일 브라우저가'toDataURL'에 캔버스를 지원합니까? if (output_s)에 대한 검사가 표시되지 않습니다. 서버에 저장하지 않는 한 데이터를'Blob'에 저장하면 왕복을 막을 수 있습니다. –