【问题标题】:Images turning sideways/upside down after being uploaded via PhoneGap (iOS)通过 PhoneGap (iOS) 上传后的图像横向/上下颠倒
【发布时间】:2012-03-10 08:25:16
【问题描述】:

不确定是什么原因造成的,但是当我通过FileTransfer() 将一些图像上传到我的远程服务器时,图像有时会横向或倒置显示。但是,当我在 iPhone 上本地查看图像时,它们的位置是正确的。

例如,当我选择这样的图片上传时:http://sharefa.st/view/WBe2QNSK8r8z

结果是这样的:http://sharefa.st/view/EWdW1Z4G8r8z

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

这是我的上传功能:

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

感谢任何见解。

【问题讨论】:

  • 我在iOS上也遇到了同样的问题,我会尽快深入研究。

标签: image cordova file-transfer


【解决方案1】:

感谢 Humanoidism 指出问题实际上出在 iPhone 以及它存储图像的方式上,我能够找到解决方案。

要以正确的方向上传照片,您必须将correctOrientation 设置添加到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 });

}

【讨论】:

  • 我使用的是cordova 3.5.0,我已将correctOrientation 设置为true,但在android 上使用前置摄像头翻转图像:(
【解决方案2】:

问题不是PhoneGap,而是iPhone。 iPhone 被设计为用作广角镜头相机。如果您打算在桌面上查看,请在拍照或拍摄视频时将手机侧向放置。您的手机会正确显示它们,因为它“知道”您是如何拍摄它们的,但您正在查看它的计算机却不知道。

为了防止这种情况发生,您可以在上传前旋转图片。这不是推荐的修复方法,但至少台式计算机上的人能够看到它。虽然在 iPhone 上查看它们时它们会被旋转 - 也许检查移动设备是否旋转图像可能会派上用场 - 但还是不推荐。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-08
    • 2018-10-31
    • 1970-01-01
    • 2016-05-29
    • 2017-07-19
    • 2015-12-26
    相关资源
    最近更新 更多