已解决
iOS BUG UIView转UIImage模糊失真
来自网友在路上 171871提问 提问时间:2023-10-10 09:42:28阅读次数: 71
最佳答案 问答题库718位专家为你答疑解惑
iOS BUG UIView转UIImage模糊失真
##UIView转成Image
- (UIImage *)capture {UIGraphicsBeginImageContextWithOptions(self.bounds.size, YES, 0.0);[self.layer renderInContext:UIGraphicsGetCurrentContext()];UIImage *img = UIGraphicsGetImageFromCurrentImageContext();UIGraphicsEndImageContext();return img;
}
运行后发现,转换后的UIImage显示后会变模糊失真
##解决方案
- (UIImage *)capture {CGSize s = self .bounds.size;// 下面方法,第一个参数表示区域大小。第二个参数表示是否是非透明的。如果需要显示半透明效果,需要传NO,否则传YES。第三个参数就是屏幕密度了UIGraphicsBeginImageContextWithOptions(s, NO, [UIScreen mainScreen].scale);[self.layer renderInContext:UIGraphicsGetCurrentContext()];UIImage*image = UIGraphicsGetImageFromCurrentImageContext();UIGraphicsEndImageContext();return image;
}
##UIScrollView内容转成UIIMageView方法
- (UIImage *)captureScrollView:(UIScrollView *)scrollView
{UIImage* image = nil;UIGraphicsBeginImageContextWithOptions(scrollView.contentSize, NO, 0.0);{CGPoint savedContentOffset = scrollView.contentOffset;CGRect savedFrame = scrollView.frame;scrollView.contentOffset = CGPointZero;scrollView.frame = CGRectMake(0, 0, scrollView.contentSize.width, scrollView.contentSize.height);[scrollView.layer renderInContext: UIGraphicsGetCurrentContext()];image = UIGraphicsGetImageFromCurrentImageContext();scrollView.contentOffset = savedContentOffset;scrollView.frame = savedFrame;}UIGraphicsEndImageContext();if (image != nil) {return image;}return nil;
}
学习记录,每天不停进步。
查看全文
99%的人还看了
相似问题
猜你感兴趣
版权申明
本文"iOS BUG UIView转UIImage模糊失真":http://eshow365.cn/6-18300-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!
- 上一篇: Linux Ftrace介绍
- 下一篇: ON CONFLICT语句