2013-09-18 3 views
2

Я пишу приложение в html5, которое должно работать на сотовых телефонах, это приложение загружает изображение с телефона на сервер моей компании. Теперь он работает на Android и на компьютере, на Iphone его работает только тогда, когда я рисую в передней камере, если я получаю снимок с задней камеры, я получаю пустые данные.canvas.toDataUrl возвращает пустое, размер холста не равен

создать файл типа InputElement, и событие OnChange для ввода элемента, который вызывается функция inputFile_onChange, которая получит ElementEvent эль:

var file = el.target.files[0]; 
    var reader = new FileReader(); 
    reader.onloadend = (function(theFile) {return function(e) { 
    $('#uploadImage').attr('src',e.target.result); 
    $('#uploadImage').css('display','none'); 
    $($('#uploadImage')[0]).one('load',function(){ 
    var cvs = document.createElement('canvas'); 
    $image = $('#uploadImage')[0]; 
    var savingCanvas = document.createElement('canvas'); 
    savingCanvas.width = $image.naturalWidth; 
    savingCanvas.height = $image.naturalHeight; 
    var savingCanvasCtx = savingCanvas.getContext('2d'); 
    FileUploadApp._globals.drawImage(savingCanvasCtx, $image, 0, 0,  
    savingCanvas.width,savingCanvas.height); 
    var newImageData = savingCanvas.toDataURL('image/jpeg', 0.2); 
    }).each(function() {if(this.complete) $(this).load();}); 
    }; 
    })(file); 
    reader.readAsDataURL(file); 

Я положил предупреждение после newImageData создать и получить «данные : «Когда я ищу ответ в Интернете, я вижу, что я получаю это, если размеры холста равны 0, но я также печатаю размер - ширину и высоту, и оба они большие> 1000

Ill рада получить некоторые помогают с этим.

ответ

2

Я нашел проблему, функции не canvas.toDataURL возвращать ничего, когда холст большой, я сжиматься холстом 1000 пикса и проблема решена

+0

я люблю тебя человек !!, искал причины с тех пор, как вы получили его, просто FYI нет проблем с большим холстом в android, получил эту ошибку только в ios. –

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