在开发的应用程序中有一个功能是剪裁UIImage,但是我实现剪裁之后,最后的图片方向就会改变,图片旋转。这个问题是怎么回事?下面是我的剪裁代码:
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;
}
请帮我指出错误在哪里,O(∩_∩)O谢谢。
坐标系不同.
UIView是已左上角为0,0坐标.
CG开头的函数是使用正常的坐标系,也就是左下角为0,0的.
我就不给你改代码了,你要么重新设计剪裁时0,0坐标的统一.
要么你就操作完毕后将图片颠倒一下,类似下面的方法.
imageView.transform = CGAffineTransformMakeRotation(M_PI);