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