AssetLibrary - 如何加载方向校正?
Posted
技术标签:
【中文标题】AssetLibrary - 如何加载方向校正?【英文标题】:AssetLibrary - how to load with orientation correction? 【发布时间】:2013-11-16 05:01:59 【问题描述】:我创建了图片索引服务(本地、Facebook、Picassa、Instagram 等)。
在集合视图中,双击会将图像弹出单元格以变为全尺寸。对于本地来源,它有时会使用错误的方向。 .即使照片更适合肖像模式,我如何强制它使用设备的方向(横向)?
这是从本地资产库加载索引资产的方法:
- (void)performLoadFor:(GTPImage*)image onSuccess:(void (^)(UIImage*))onSuccess onError:(void (^)(NSError*))onError
[_assetsLibrary assetForURL:[NSURL URLWithString:image.address] resultBlock:^(ALAsset* asset)
if (onSuccess)
CGImageRef imageRef = [[asset defaultRepresentation] fullResolutionImage];
onSuccess([UIImage imageWithCGImage:imageRef]);
failureBlock:^(NSError* error)
onError(error);
];
【问题讨论】:
【参考方案1】:这篇文章解释的很好: http://biasedbit.com/alasset-image-orientation/
这是您从资产中获取图像方向的方式:
// Retrieve the image orientation from the ALAsset
UIImageOrientation orientation = UIImageOrientationUp;
NSNumber* orientationValue = [asset valueForProperty:@"ALAssetPropertyOrientation"];
if (orientationValue != nil)
orientation = [orientationValue intValue];
您也可以尝试使用 [ALAssetRepresentation 方向] 并像这样创建图像:
UIImage* image = [UIImage imageWithCGImage:ref scale:1.0f orientation:(UIImageOrientation)[rep orientation]];
似乎对我有用。
【讨论】:
以上是关于AssetLibrary - 如何加载方向校正?的主要内容,如果未能解决你的问题,请参考以下文章
OpenCV 例程200篇237. 基于主成分提取的方向校正(OpenCV)
OpenCV实现基于傅里叶变换(FFT)的旋转文本校正(文字方向检测)