记录iOS生成分享图片的一些问题,根据UIView生成固定尺寸的分享图片

测试设备为iPhoneX,目标页面的frameCGRectMake(0, 0, 375, 560)
目的是为了生成此View的图片,用于分享。
首先使用此方法生成UIImage
UIImage *tempImage = [shareView SaveViewImage];

-(UIImage *)SaveViewImage
{
    CGSize imageSize    = self.bounds.size;
    UIGraphicsBeginImageContextWithOptions(imageSize, YES, 0);
    [self.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *SaveImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
  
    return SaveImage;
}

生成页面结果如下:

图片分辨率为1125 × 1680

最终图片分辨率为1125 × 1680
但是想要输出的结果是750 ×1120
修改生成上下文的方法为UIGraphicsBeginImageContextWithOptions(CGSizeMake(750, 1120), YES, 0);,重新编译,发现出现了混乱,而且分辨率为2250 × 3360
图片出现混乱

修改上下文生成方法为UIGraphicsBeginImageContext(CGSizeMake(750, 1120));发现页面被缩放了:
页面被缩放

感觉是viewframe的单位从pt变成了px
所以修改目标ViewframeCGRectMake(0, 0, 750, 1120),并且把view中的各控件的frame同时调整为两倍,最终生成了符合要求的分辨率为750 ×1120的类似图一效果的目标图片。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容