在 iPhone 中裁剪后 UIImage 显示模糊
Posted
技术标签:
【中文标题】在 iPhone 中裁剪后 UIImage 显示模糊【英文标题】:UIImage showing blur after cropping in iPhone 【发布时间】:2012-08-24 12:36:22 【问题描述】:我的应用程序,我有一个 uiscrollview 并在其上有子视图 uiimageview,当用户单击库中显示在该 imageview 上的任何照片时,用户可以移动、缩放和缩放图像,当用户单击裁剪按钮时,它应该裁剪该图像在 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];
我用这种方法裁剪,请帮我解决这个问题
【问题讨论】:
【参考方案1】:帧大小不代表物理像素。 因此,如果您使用的是视网膜,请进行以下更改。
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);
其他都还好。
【讨论】:
感谢您的快速回复,但是当我进行更改时,图像变成了两个大并且裁剪部分也不可见 而不是使用 2.0 使用 [UIScreen mainScreen].scale以上是关于在 iPhone 中裁剪后 UIImage 显示模糊的主要内容,如果未能解决你的问题,请参考以下文章