Ios 如何撰写一篇“文章”;对",;从AVCaptureDevice捕获NSData和NSDictionary的定向UIImage?
我正在使用AVCaptureDevice从相机中捕获图像。设置会话并捕获图像后,我可以获得一个Ios 如何撰写一篇“文章”;对",;从AVCaptureDevice捕获NSData和NSDictionary的定向UIImage?,ios,iphone,uiimageview,uiimage,uiimageorientation,Ios,Iphone,Uiimageview,Uiimage,Uiimageorientation,我正在使用AVCaptureDevice从相机中捕获图像。设置会话并捕获图像后,我可以获得一个NSData*和一个NSDictionary*对象,但是,由于EXIF元数据和数据分离,当我试图将NSData*转换为UIImage*,并将其放在UIImageView*中时,图像方向错误 我知道我可以使用很多修复方法来获得正确的图像,我现在正在这样做,但问题是,当图像分辨率很高(即3000*4000)时,修复方法很慢,在我的iPhone5上大约需要500毫秒。在使用仪器运行时间分析器之后,大部分时间都
NSData*
和一个NSDictionary*
对象,但是,由于EXIF元数据和数据分离,当我试图将NSData*
转换为UIImage*
,并将其放在UIImageView*
中时,图像方向错误
我知道我可以使用很多修复方法来获得正确的图像,我现在正在这样做,但问题是,当图像分辨率很高(即3000*4000)时,修复方法很慢,在我的iPhone5上大约需要500毫秒。在使用仪器运行时间分析器之后,大部分时间都花在写数据上,我想这是不可避免的
所以我想知道我做的对吗?难道不应该有一种更简单更有效的方法来解决这样的问题吗?请帮我离开这里,非常感谢 这在不使用ImageIO框架实际旋转图像字节的情况下是可能的。您希望使用创建图像目标,然后使用添加图像数据及其EXIF数据 这里有几个例子,比如 如果您只想显示此图像,则可以使用以下方法从数据创建具有指定旋转的UIImage:
+ (UIImage *)imageWithCGImage:(CGImageRef)imageRef scale:(CGFloat)scale orientation:(UIImageOrientation)orientation
谢谢Tark,您提到的方法需要将图像保存到文件中,对吗?如果我不想保存它,我只想在UIImageView中显示它呢?在这种情况下,您需要做的就是从指定EXIF元数据中给定旋转的数据创建UIImage。我用你应该看到的方法更新了答案。我猜这就是答案。谢谢你的帮助!