0

我正在使用 AVCaptureDevice 从相机捕获图像。设置会话并捕获图像后,我可以获得 aNSData *和一个NSDictionary *对象,但是,由于 EXIF 元数据和数据的分离,当我尝试将其转换为NSData *并将UIImage *其放入 aUIImageView *时,图像方向错误。

我知道我可以使用很多修复方法来获得正确的图像,我现在正在这样做,但问题是,当图像分辨率很高(即 3000 * 4000)时,修复方法很慢,我的 iPhone5 大约需要 500 毫秒。在使用仪器运行时间分析器之后,大部分时间都花在了写入数据上,我猜这是不可避免的。

所以我想知道我在做正确的事吗?难道不应该有一种更简单但更有效的方法来解决这样的问题吗?请帮我离开这里,非常感谢!

4

1 回答 1

1

这可以通过使用 ImageIO 框架在不实际旋转图像字节的情况下实现。您想使用 CGImageDestinationCreateWithURL 创建图像目标,然后使用CGImageDestinationAddImage添加图像数据及其 EXIF 数据。

SO上有几个例子,比如这个

如果您只想显示此图像,则可以使用以下数据创建具有指定旋转的 UIImage:

+ (UIImage *)imageWithCGImage:(CGImageRef)imageRef scale:(CGFloat)scale orientation:(UIImageOrientation)orientation
于 2013-12-05T07:53:23.740 回答