裁剪图像更改 iPhone 中的旋转

Posted

技术标签:

【中文标题】裁剪图像更改 iPhone 中的旋转【英文标题】:Cropping Image changes rotation in iPhone 【发布时间】:2013-01-17 09:39:38 【问题描述】:

我在UIImage 上使用了一个简单的裁剪,但是在我们检查最终图像进行裁剪后,它会在 iPhone 中旋转。下面是我用于裁剪的代码。

CGRect visibleRect;
float scale = 1.0f/scrollView.zoomScale;
visibleRect.origin.x = scrollView.contentOffset.x * scale;
visibleRect.origin.y = scrollView.contentOffset.y * scale;
visibleRect.size.width = scrollView.bounds.size.width * scale;
visibleRect.size.height = scrollView.bounds.size.height * scale;
finalImage = imageFromView(displayImageView.image, &visibleRect);

UIImage* imageFromView(UIImage* srcImage, CGRect* rect) 
    CGImageRef cr = CGImageCreateWithImageInRect(srcImage.CGImage, *rect);
    UIImage* cropped = [UIImage imageWithCGImage:cr];

    CGImageRelease(cr);
    return cropped;

如果我做错了什么,请告诉我。

【问题讨论】:

【参考方案1】:

你需要在crpping之后调用这个方法

-(UIImage*)rotateImage:(UIImage*)image

UIGraphicsBeginImageContext(image.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextDrawImage(context, CGRectMake(0 , 0, image.size.width , image.size.height), [image CGImage]);


CGContextRotateCTM (context, radians(90));

CGImageRef cgImage = nil;

cgImage = CGBitmapContextCreateImage(context);

UIImage *img = [UIImage imageWithCGImage:cgImage];


return img;


【讨论】:

嗨,Sachin,所以在从裁剪功能中检索到最终图像后,我需要在上面调用旋转功能。 如果一张图片是横向模式而第二张是纵向模式怎么办。如何知道什么时候旋转什么时候不旋转?

以上是关于裁剪图像更改 iPhone 中的旋转的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iPhone 应用程序中执行图像编辑?

如何在iphone中裁剪特定图像

如何在 iphone sdk 中裁剪图像圈

1.图像裁剪、加边框、旋转(Python PIL)

在 iPhone 中裁剪后 UIImage 显示模糊

iphone - 在 iphone 的方向改变时,只旋转一个控件而不是所有其他控件