我是我的应用程序,我有一个uiscrollview并且在其上有子视图uiimageview,当用户点击它在该imageview上显示的库中的任何照片时,用户可以移动,缩放和缩放图像,当用户点击庄稼按钮时它应该裁剪图像视图中的部分,在iPhone 3GS中它的工作非常精细,但在视网膜中它无法正常裁剪显示出不同的图像。
- (UIImage *)currentSlice {
CGSize sliceSize = imageView.frame.size;
UIGraphicsBeginImageContextWithOptions(sliceSize, NO, 0.0);
[imageView.image drawInRect:CGRectMake(0, 0, sliceSize.width, sliceSize.height)];
UIImage *scaledImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
CGRect sliceRect = CGRectMake(scrollView.contentOffset.x, scrollView.contentOffset.y, scrollView.frame.size.width, scrollView.frame.size.height);
CGImageRef imageSlice = CGImageCreateWithImageInRect(scaledImage.CGImage, sliceRect);
return [UIImage imageWithCGImage:imageSlice];
}
我已经使用这种方法进行裁剪,请帮我解决这个问题
答案 0 :(得分:0)
帧大小不代表物理像素。 所以,如果你正在与视网膜一起工作,请做以下改变。
CGSize sliceSize = CGSizeMake(imageView.frame.size.width * 2.0, imageView.frame.size.height * 2.0);
CGRect sliceRect = CGRectMake(scrollView.contentOffset.x, scrollView.contentOffset.y, scrollView.frame.size.width * 2.0, scrollView.frame.size.height * 2.0);
其他一切都很好。