在開發的應用程序中有一個功能是剪裁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);