API HTML5 FileReader в iPhone5 не получает фото с камеры

Я создаю мобильный веб-сайт, который позволяет пользователям загружать фотографии со своей камеры.

Я могу получить изображения из альбомов пользователей, и я могу получить изображения, когда пользователь делает снимок в iOS6 на iPhone4 и Android 4, но когда пользователь делает снимок с помощью iPhone5 (также с помощью iOS6), я ничего не получаю. Я могу получить изображение из фотоальбомов пользователей, но не при фотографировании.

вот код и jsfiddle ниже

$('input#file_api').change(function(evt){
    var image = evt.target.files[0];
    var reader = new FileReader();
    reader.onerror  = (function(){alert('error reading file')});
        reader.onload = (function(theFile) {
        return function(e) {
          // Render thumbnail.
          var tempImg = new Image();

          tempImg.src = reader.result;
          tempImg.onload = function(){
             var canvas = document.createElement('canvas');
                   canvas.width=tempImg.width;
            canvas.height=tempImg.height;
             var ctx = canvas.getContext("2d");

                ctx.drawImage(tempImg,0,0);

               $('body').append(canvas);
})(image);
      reader.readAsDataURL(image);

У меня есть пример здесь http://jsfiddle.net/8DJUy/4/

Если вы используете средство выбора файлов для получения фотографии, она добавит фотографию на страницу. Если вы сделаете снимок на iPhone5, он ничего не добавит. Но в то же время и не выдает ошибок.

Любые предложения о том, как обойти это?

Не могу понять, в чем проблема с фотографией.

Причина, по которой я беру такие фотографии, заключается в том, что размеры файлов довольно велики при загрузке непосредственно с телефона, а вариант использования не требует изображений с высоким разрешением, поэтому я использую холст для изменения размера изображения перед его загрузкой. .


person pedalpete    schedule 03.01.2013    source источник


Ответы (1)


Попробуйте это вместо этого:

ctx.drawImage(tempImg, 0, 0, canvas.width, canvas.height);
person furtive    schedule 03.01.2013
comment
Вау, спасибо @furtive, однажды я хотел бы стать одним из умных людей, которые могут разбираться в таких деталях. Спасибо! - person pedalpete; 03.01.2013
comment
Плохо, я попросил кого-то протестировать iPhone 5 (у меня его нет), и «изображение», которое они увидели, было маленьким значком, который появляется в селекторе файлов, а не фактическим изображением, считываемым приведенным выше кодом. - person pedalpete; 03.01.2013