2014-12-15 3 views
0

До сих пор у меня есть этот код для добавления небольшого водяного знака к изображению и рисования его на холст, теперь я пытаюсь получить данные холста в DataURL, по какой-то причине он не работает должно бытьcanvas.drawImage .toDataURL

может ли кто-нибудь дать мне идею, почему? и, возможно, как это исправить и получить данные URI из него

вот мой код

JS

var canvas = document.getElementById('canvas1'); 
var context = canvas.getContext('2d'); 

var watermark = new Image(); 
watermark.src = "http://dummyimage.com/80x80/red/ffffff"; 

var img = new Image(); 
img.src = "http://dummyimage.com/500x700/303030/ffffff"; 

context.drawImage(img, 0, 0); 
context.drawImage(watermark,0,0,50,50); 

HTML

<canvas width="500" height="700" id="canvas1"></canvas> 

пытался с context.toDataURL('image/png');, но он не возвращает

Here's a link to my bin

ответ

0

toDataURL метод существует на холсте, а не в контексте.

Следующая ошибка, которую вы получите после фиксации, который:

Uncaught SecurityError: Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported.

Изображение должно существовать в той же области, чтобы исправить это.

Возможно, вам также придется предварительно загрузить изображения.

+0

preloading и cors не будет проблемой, я создаю приложение для мобильного телефона с функцией камеры, одно изображение с камеры и водяной знак изнутри приложения, я посмотрю вокруг, чтобы исправить toDataUrl вещь, любые направления? – Shironsh

+0

Мне удалось заставить его работать, теперь он возвращает пустое изображение для URI, я предполагаю, что это потому, что я не предварительно загружаю его, http://jsbin.com/wiyoqerota, я попробую с телефонным разговором '** Редактировать **' nope, он возвращает белый в phonegap тоже, любая идея, почему это так? : / – Shironsh

Смежные вопросы