2015-07-06 5 views
1

Я перепробовал много различных способов, но в Firefox, когда я изменить размер в первый раз, она возвращает пустое изображение:Изменение размера base64 изображения не работает в Firefox

function imageToDataUri(img, width, height) { 
var canvas = document.createElement('canvas'); 
ctx = canvas.getContext('2d'); 
canvas.width = width; 
canvas.height = height; 
ctx.drawImage(img, 0, 0, width, height); 
setTimeout(function() { 
    cursorimg = canvas.toDataURL(); 
}, 500); 
} 

Это моя функция, и я называю это как это:

cursorImage.onload = function(){ 
    imageToDataUri(cursorImage, width, height); 
} 
+0

Загружено ли ваше изображение, когда код выполняется первым? (изображение будет иметь событие onload) –

+0

мое изображение cursorImage, и у меня есть функция вызова onload, поэтому он должен быть загружен. –

+0

Упс, мой плохой. Что говорит консоль, ширина/высота холста непосредственно перед вызовом рисования? –

ответ

0

у меня был точно такой же вопрос, как вы, и проблема исчезла, когда я создал Canva вне «OnLoad» обратного вызова, как это:

var canvas = document.createElement('canvas'); 
var ctx = canvas.getContext('2d'); 
canvas.width = width; 
canvas.height = height; 
cursorImage.onload = function(){ 
    ctx.drawImage(img, 0, 0, width, height); 
    cursorimg = canvas.toDataURL(); 
} 

Я все еще новичок в JavaScript, я не могу объяснить, почему это сработало ...

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