我有imageView
使用Aspect适合模式。我在imageView
添加了另一个视图。
我想截取imageView
的屏幕截图而不进行压缩(与之前的分辨率相同)。
我尝试过以下代码
UIGraphicsBeginImageContextWithOptions(CGSizeMake(imgView.image.size.width, imgView.image.size.height), NO, 1.0);
[imgView drawViewHierarchyInRect:CGRectMake(0, 0, imgView.image.size.width, imgView.image.size.height) afterScreenUpdates:YES];
UIImage * Image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
但最终图片是streach。我该怎么办?
我认为它包含透明部分。有没有办法不包含在
中答案 0 :(得分:0)
试试这个:
UIGraphicsBeginImageContextWithOptions(imgView.bounds.size, NO, 0.0);
[imgView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *newImageWithMyImageView = UIGraphicsGetImageFromCurrentImageContext();
答案 1 :(得分:0)
我遇到了同样的问题,因为图像的高度是小数,我将其转换为整数值,图像不再被拉伸。
所以试试这个:
UIGraphicsBeginImageContextWithOptions(CGSizeMake(imgView.image.size.width, imgView.image.size.height), NO, 1.0);
[imgView drawViewHierarchyInRect:CGRectMake(0, 0, (int) imgView.image.size.width, (int)imgView.image.size.height) afterScreenUpdates:YES];
UIImage * Image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();