2

我创建了一个图片索引服务(本地、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);
    }];
}
4

1 回答 1

5

这篇文章解释得很好: 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];
}

您也可以尝试使用 [ALAssetRepresentationorientation] 并像这样创建图像:

UIImage* image = [UIImage imageWithCGImage:ref scale:1.0f orientation:(UIImageOrientation)[rep orientation]];

似乎对我有用。

于 2014-01-14T07:25:02.220 回答