在我的仅横向iPhone应用程序中,我启动了一个UIImagePickerController来拍摄照片,但是从相机显示的实时图像是纵向的,周围有空白区域.图像旋转.
按下相机按钮后,预览非常混乱,大部分预览关闭屏幕,并且视图未正确对齐.
Apple承认这是缺陷,并正在努力.
我的问题是,是否有人有一个解决方法(合法或非法),这将使我现在能够正常工作.我不会通过非法修复发布到App Store,但我会有一个更好的应用程序用于用户测试 - 目前相机在景观中几乎无法使用.
如果可以的话,我会附上一个简单的测试项目和图像.
编辑 - 只是为了澄清,我得到的图像是正确的风景.我希望相机和预览UI看起来正确!
我的rails应用程序中有一个照片上传功能.该应用程序通过rmagick和雾直接通过carrierwave上传到s3.我遇到的问题是通过手机上的"拍照选项"上传照片时(注意这是iphone,但我相信Android有同样的问题).上传后,图像在手机上显示正常,但在桌面上查看时,图像会旋转90度.
通过我的研究,它看起来是exif的一个问题.此stackoverflow响应程序概述了2个可能的解决方案.这个要点也看起来也很有希望.
到目前为止,我发现了一些解决方案,但没有一个有效.理想情况下,我希望将照片作为肖像保存到s3,然后只按原样显示图像.
任何建议都很受欢迎.
以下是我的代码
class ImageUploader < CarrierWave::Uploader::Base
include CarrierWaveDirect::Uploader
include CarrierWave::RMagick
# Include the Sprockets helpers for Rails 3.1+ asset pipeline compatibility:
include Sprockets::Helpers::RailsHelper
include Sprockets::Helpers::IsolatedHelper
include CarrierWave::MimeTypes
process :fix_exif_rotation
process :set_content_type
version :thumb do
process resize_to_fill: [200, 200]
end
def extension_white_list
%w(jpg jpeg png)
end
def fix_exif_rotation #this is my attempted solution
manipulate! do |img|
img = img.auto_orient!
end
end
end
Run Code Online (Sandbox Code Playgroud)
class S3Image < ActiveRecord::Base
attr_accessible :image, :name, :user_id …Run Code Online (Sandbox Code Playgroud) 我需要转换UIImage为NSData但不使用UIImagePngRepresentation或者UIImageJpegRepresentation,对于来自photolib的图像我可以使用此处提到的assetlib方法使用ALAssetsLibrary和ALAsset取出Image作为NSData,但对于捕获的图像,assset url不存在因此在那种情况下我需要转换UIImage直接用exif数据的字节,我该怎么做到这一点?请帮忙
有没有一种方法来旋转用PHP的图片只有当它的iOS上传后,无法正确定位?
一些图片旋转90度,而其他图片正确上传.