Что я пытаюсь сделать, это загрузить изображение с моего сервера и добавить его на холст, а затем я хочу его сохранить.Загрузить изображение на холст из «внешнего» источника и сохранить его
Добавить изображение в систему. Выполнено Когда я нажимаю save, это вызывает у меня ошибку.
Uncaught SecurityError: Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported.
Я немного искал эту ошибку здесь и в Google, но я не мог ее решить.
Я устанавливаю crossOrigin для анонимных, поскольку я читаю, что мне нужно делать.
var src = "logo.svg";
fabric.util.loadImage(src, function(img) {
var object = new fabric.Image(img);
object.set({
left: 0,
top: 0
});
object.hasRotatingPoint = true;
object.scaleX = object.scaleY = 1;
canvas.add(object);
canvas.renderAll();
}, null, {crossOrigin: 'Anonymous'});
Затем я прочитал, что мне нужно добавить какое-то правило в .htaccess.
Access-Control-Allow-Origin header
Так что я создал .htaccess на моем домене со следующим текстом:
<IfModule mod_setenvif.c>
<IfModule mod_headers.c>
<FilesMatch "\.(cur|gif|ico|jpe?g|png|svgz?|webp)$">
SetEnvIf Origin ":" IS_CORS
Header set Access-Control-Allow-Origin "*" env=IS_CORS
</FilesMatch>
</IfModule>
</IfModule>
Затем я проверил, если mod_setenvif.c
и mod_headers.c
включаются с помощью:
<?php if (strpos(shell_exec('/usr/local/apache/bin/apachectl -l'), 'mod_headers.c') !== false) {
echo 'Yes';
}else{
echo 'No';
} ?>
И как я получите «Да».
Любое предложение было бы замечательным.
Спасибо
EDIT:
То, что я пытаюсь это добавить изображение с моего сервера на холсте.
Я получаю ту же ошибку: Uncaught SecurityError: Не удалось выполнить 'toDataURL' на 'HTMLCanvasElement': Tainted холсты не могут быть экспортированы. –