Image 通过PhoneGap(iOS)上传后图像转向侧面/倒置

Image 通过PhoneGap(iOS)上传后图像转向侧面/倒置,image,cordova,file-transfer,Image,Cordova,File Transfer,不确定是什么原因导致了这种情况,但当我通过将一些图像上传到远程服务器时,这些图像有时会横向显示或颠倒显示。但是,当我在iPhone上本地查看图像时,它们的位置是正确的 例如,当我选择像这样的图像进行上载时: 结果会是这样的: 我使用本地路径传输文件,所以我不明白为什么图像会“随机”旋转 以下是我的上传功能: function uploadPhoto() { var options = new FileUploadOptions(); options.fileKey = 'fi

不确定是什么原因导致了这种情况,但当我通过将一些图像上传到远程服务器时,这些图像有时会横向显示或颠倒显示。但是,当我在iPhone上本地查看图像时,它们的位置是正确的

例如,当我选择像这样的图像进行上载时:

结果会是这样的:

我使用本地路径传输文件,所以我不明白为什么图像会“随机”旋转

以下是我的上传功能:

function uploadPhoto() {

    var options = new FileUploadOptions();
    options.fileKey  = 'file';
    options.fileName = imgURI.substr(imgURI.lastIndexOf('/')+1);
    options.mimeType = 'image/jpeg';

    var params = new Object();

    if(logged_in == true) {

        params.unique_id  = app_unique_id; 
        params.secret_key = user_secret_key;

    }

    options.params = params;

    loadingStart();

    var ft = new FileTransfer();

    ft.upload(imgURI, 'http://' + remote_server + '/API/upload', uploadDetails, fail, options);

}
imgURI
值如下所示:

file://localhost/var/mobile/Applications/<snip>/tmp/photo_015.jpg
file://localhost/var/mobile/Applications//tmp/photo_015.jpg

任何见解都值得赞赏。

问题不在于PhoneGap,而在于iPhone。iPhone的设计初衷是用作宽镜头相机。如果您想在桌面上观看照片或视频,请在拍照或拍摄视频时将手机侧向。你的手机将正确显示它们,因为它“知道”你是如何拍摄它们的,但你正在查看它们的电脑却不知道


你能做的是在上传前旋转图片来防止这种情况。这不是一个推荐的修复程序,但至少桌面计算机上的用户可以看到它。虽然在iPhone上查看图像时,它们会被旋转——也许检查移动设备是否旋转图像会很方便——但还是不推荐使用。

感谢类人主义指出问题实际上与iPhone有关,以及它存储图像的方式,我能够找到解决方案

要以正确的方向上传照片,必须将
correctororientation
设置添加到
getPicture()
中的选项数组中,并将其设置为
true

以下是两个例子:

function capturePhoto() {

    navigator.camera.getPicture(onPhotoDataSuccess, onFail, { quality: 30, correctOrientation: true });

}

function getPhoto(source) {

    navigator.camera.getPicture(onPhotoURISuccess, onFail, { quality: 30, 
    destinationType: destinationType.FILE_URI,
    sourceType: source,
    correctOrientation: true });

}

我在iOS上也有同样的问题,我将很快深入研究。我正在使用cordova 3.5.0,并且我已将
correctOrientation
设置为
true
,但在android上使用前置摄像头翻转图像:(