重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
在 iOS 开发过程中,对图片的处理不仅仅局限于显示、渲染样式,还常常遇到对view指定区域截图,以及对图片的压缩、拉伸等操作。下面我们介绍一下类似的操作过程:
创新互联建站-专业网站定制、快速模板网站建设、高性价比舟曲网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式舟曲网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖舟曲地区。费用合理售后完善,十余年实体公司更值得信赖。
注:通过 UIGraphicsBeginImageContextWithOptions(CGSize size, BOOL opaque, CGFloat scale) 和 drawViewHierarchyInRect 的配合来截取并渲染出来的图片位置和大小,是由前者的size和后者的rect共同决定的。 即,画布相当于父view,其尺寸为size,截图绘制到画布中的位置和尺寸为rect。
想试一试的同学,可以创建一个demo,取不同的size和rect值,来观察画布和截图的位置。也可以试着将画布和截图完全吻合,即将截图完整的渲染出来,这并不难。
裁剪图片就是对当前的图片按照指定的大小范围生成一个新的图片。需要注意的是如果当前显示图片是2倍图或者3倍图,要么可能尺寸不对,要么截出来的图片很模糊,因此,需要在截图前调整rect值。
注:UIImageJPEGRepresentation 两个参数:图片引用 和压缩系数,而 UIImagePNGRepresentation 只需图片引用作为参数。在实际使用过程中,UIImagePNGRepresentation(UIImage* image) 一般要比UIImageJPEGRepresentation(UIImage* image, 1.0) 返回的图片数据量大,在处理图片时,若对图片质量要求不高,则建议使用UIImageJPEGRepresentation,根据自己的实际使用场景设置压缩系数,进一步降低图片数据量大小。
在 = iOS 5.0 时,UIImage的新方法可以处理图片的拉伸问题:
使用过程:
在 = iOS 6.0 时,UIImage的新方法可以处理图片的拉伸问题:
使用过程:
参考文章:
根据指定的view截屏
UIImage *saveImg = [self createImg:self.bgImgView];
[self savePhotoWithImg:saveImg];
保存截图到相册
根据指定区域截图
UIImage *saveImg = [self createImg:self.bgImgView andFrame:CGRectMake(100, 100, 100, 100)];
[self savePhotoWithImg:saveImg];
若是对带有视频播放的页面截图,不可用上述方法,会出现黑屏,可使用以下方法实现效果
访问相册需在项目的info.plist中添加
最近在做一个监听用户屏幕截图,编辑图片的功能。顺带把功能抽出来作为小组件分享一下。
由于没有太多时间,暂时支持的自定义比较少????
pod 'LMScreenshotHint'
Ios截图的方法有很多:
1.进入ios15辅助触控更多选项页面,使用截屏功能即可进行截屏,打开设备页,点击触控小球图标,打开“设备”功能页。:点击更多。在设备功能页面,点击“更多”选项。使用截屏功能截屏,在更多选项页,点击截屏功能进行截屏。
2.有home键的机型可以使用home键加电源键进行截图。没有home键的机型可以使用音量键加电源键的方式截图。
3.在辅助触控中找到“自定顶层菜单”,在其中启用截屏,就可以在顶层菜单中使用截图了。
self.snapImageView = (UIImageView*) [self.view snapshotViewAfterScreenUpdates:true];(简单)
这个方法直接就可以获取到截取的图片,然后就可以用来实现设置相应的内容。
可参考的链接