为内容模式Aspect适合截取UIImageView的截图?

时间:2014-12-16 17:15:11

标签: ios objective-c uiimageview

我有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。我该怎么办?

我认为它包含透明部分。有没有办法不包含在

2 个答案:

答案 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();