【问题标题】:Rotation after select UIImage of library选择库的 UIImage 后旋转
【发布时间】:2013-04-11 21:20:12
【问题描述】:

当我像这样从图书馆中选择一张肖像照片时:
(来源:hostingpics.net

库返回的 UIImage 被旋转。

这是我的代码:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)img editingInfo:(NSDictionary *)editInfo {
    UIImage* originalImg = [editInfo objectForKey:UIImagePickerControllerOriginalImage];
    [self useImage:originalImg];
}

我怎样才能避免这种情况?

【问题讨论】:

  • 通常图像选择器会以正确的方向返回图像。你能发布你的userImage:方法的代码吗?也许有旋转图像。
  • 不,我只是在 uiimageview 中显示它..

标签: ios objective-c uiimage uiimagepickercontroller image-rotation


【解决方案1】:
self.imageData=[info objectForKey:@"UIImagePickerControllerOriginalImage"];    
CIImage *image = [[CIImage alloc] initWithImage:[info objectForKey:@"UIImagePickerControllerOriginalImage"]];
self.imageData=[UIImage imageWithCIImage:image scale:self.imageData.scale orientation:self.imageData.imageOrientation];

您可以使用以下方法来保留图像的方向:

 [UIImage imageWithCIImage:(CIImage *) scale:(CGFloat) orientation:(UIImageOrientation)];
 [UIImage imageWithCGImage:(CGImageRef) scale:(CGFloat) orientation:(UIImageOrientation)];

【讨论】:

    【解决方案2】:

    您之前是否使用应用中的图像选择器拍摄图像然后保存图像? 如果是这样,您是否在保存图像时设置了方向?你需要。

    考虑添加日志语句或调试以检查图像上设置的方向。

    如果在图片上设置了方向,那么 UIImageView 会自动正确渲染图片。

    如果(将来)您要获取图像数据并将其上传到某处,那么您需要检查方向并重新绘制图像,同时对上下文应用适当的变换。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-29
      相关资源
      最近更新 更多