Folks,
我一直在尝试让这段代码处理 iPhone 4G 上相机拍摄的图像,但没有成功:
iPhone - CGImageCreateWithImageInRect 旋转一些相机胶卷图片
此代码非常适合裁剪“正常”图像 - 我从互联网下载的图像或由我的 iPhone 3G 拍摄的图像。
调用旋转代码后,iPhone 4G 相机的照片似乎会被完全随机地裁剪到图像的部分。
我什至尝试使用这段代码:调整从相机中提取的 UIimage 的大小也会旋转 UIimage?
我将图像“调整”到与实现旋转相同的尺寸,然后尝试在不考虑旋转的情况下裁剪图像。也没有运气。
有什么方法可以拍摄 iPhone 4G 相机拍摄的图像并将其转换为与从互联网下载的图像具有相同质量/属性的图像(即没有旋转信息和/或其像素被旋转)从一开始就正确),以便我尝试执行的后续操作(在本例中是裁剪)将按我的预期进行?
Thanks!
有一个lot of sample code out在网上为此。对于 iPhone 4G 来说,这一切都是不完整或错误的,因为 iPhone 4G 将旋转 EXIF 数据嵌入到其 JPEG 中。该数据通过 imageOrientation 属性公开,这是 iOS 4 中的新增功能。
使用具有 EXIF 旋转信息的图像裁剪区域的正确方法是使用这家伙的代码,但不要使用这一行:
UIImage *resultImage = [[[UIImage alloc] initWithCGImage:resultImageRef] autorelease];
你应该这样称呼:
UIImage *resultImage = [[[UIImage alloc] initWithCGImage:resultImageRef scale:1.0 orientation:originalImage.imageOrientation] autorelease];
第二个调用将旋转信息从原始图像嵌入到 UIImage 中。
不幸的是,该调用在 iOS 3.XX 上不可用;幸运的是,您不太可能在这些设备上遇到带有 EXIF 信息的图像,因为相机无法拍摄带有旋转信息的照片。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)