0

我正在建立一个移动网站,让用户可以从他们的相机上传照片。

我可以从用户相册中获取图像,当用户在 iPhone4 和 Android 4 上的 iOS6 中拍照时,我可以获取图像,但是当用户使用 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 拍照,它不会附加任何东西。但同时,它也不会出错。

关于如何解决这个问题的任何建议?

我不太清楚抓照片有什么问题。

我这样抓照片的原因是直接从手机上传时文件很大,用例不需要高分辨率图像,所以我在上传之前使用画布调整图像大小.

4

1 回答 1

1

试试这个:

ctx.drawImage(tempImg, 0, 0, canvas.width, canvas.height);
于 2013-01-03T03:54:15.190 回答