iOS开发--保存png图片到相册有白边
保存有圆角的png图片到相册,再从相册中编辑查看,发现有白边。用的保存代码如下:
UIImage * image = UIGraphicsGetImageFromCurrentImageContext();UIImageWriteToSavedPhotosAlbum(image, self, #selector(saveError(_:didFinishSavingWithError:contextInfo:)), nil)
猜测是图片本身的问题,莫非把图片保存到磁盘后变成了jpg图片?于是在磁盘中打开图片,发现是png图片,证明这个猜测是错的,那是为啥呢?
于是又做了如下的测试
把图片保存到系统相册后,再通过隔空投送传送到电脑,用电脑打开发现是jpeg的图片。莫非是苹果优化了图片存储的格式,保存相册过程中将图片默认转成了jpeg格式的图片?
于是有了如下代码:
func pngFrom(image: UIImage) -> UIImage? {if let imageData = UIImagePNGRepresentation(image) {let imagePng = UIImage(data: imageData)return imagePng}return nil
}
private func saveImage(image: UIImage) {if let image = pngFrom(image: image) {UIImageWriteToSavedPhotosAlbum(image, self, #selector(saveError(_:didFinishSavingWithError:contextInfo:)), nil)}
}
使用时调用
saveImage(image)
再打开图片,发现无白边。问题解决了。
于是大胆假设,原因就是:
用用UIGraphicsGetImageFromCurrentImageContext方法获取的图片,并未指明图片的格式(A image object containing the contents of the current bitmap graphics context.),苹果保存时就默认使用了一个有损且不含alpha通道的jpeg格式。而如果用代码将图片转化为png格式后,苹果就不进行了此优化了。
谁让你自己没指明图片的格式呢?既然没指明,那就在保存时默认使用占用磁盘空间小的图片格式吧(jpeg),这么做也没毛病。
以上就是图片保存采坑记,嗯,挺好玩的。
参考自:
https://stackoverflow.com/questions/1489250/uiimagewritetosavedphotosalbum-save-as-png-with-transparency
iOS开发--保存png图片到相册有白边相关推荐
- iOS开发------简单实现图片多选功能(Photos.framework篇)
Photos.framework是iOS8后苹果推出的一套替代AssetsLibrary.framework获取相册资源的原生库,至于AL库,欢迎大家给博文iOS开发--简单实现图片多选功能(Asse ...
- IOS开发基础之图片轮播器-12
IOS开发基础之图片轮播器-12 核心代码 // // ViewController.m // 12-图片轮播器 // // Created by 鲁军 on 2021/2/2. //#import ...
- iOS开发中拉伸图片的几种方式
在iOS开发中,经常会遇到控件尺寸和图片大小不匹配的情况. 一些情况下, 我们需要对图片进行拉伸, 以满足美观需求. 总的来说, 图片的拉伸方式可以分为两种, 一种是通过Xcode自带的Show Sl ...
- Android开发之刷新图片到相册 | 刷新视频到相册的方法区分发广播刷新方法
我们很多app会有保存图片和保存视频,保存成功后一般在最近文件或者相册就能看到了,这个需要我们在保存文件后自行刷新到相册中,以前老版本方法通过广播刷新方法在API29中已经废弃了无法使用,咱们提供了新 ...
- iOS开发需要哪些图片?
1.产品设计图 可以以6的长宽比 750*1134来设计.这些图片用于描述app是什么样子的,这是app开发人员的开发参考. 2.产品切图 将设计师将设计稿切成可以用来开发的图 颜色值 iOS颜色值取 ...
- 小程序保存视频/图片到相册并且授权
授权允许访问相册 wx.getSetting({ success(res) { if (!res.authSetting['scope.writePhotosAlbum']) { // 未授权 wx. ...
- iOS开发——仿微信图片浏览交互的实现(向下拖拽图片退出图片浏览器)
点击上方"iOS开发",选择"置顶公众号" 关键时刻,第一时间送达! DEMO的github地址:https://github.com/YYProgrammer ...
- ios开发所需图片尺寸汇总
应用图标App Icon: 以下图标都为直角,有图片格式备注,制作好后放在新建文件夹icon下,压缩为zip压缩包. iphone Spotlight - ios5,6 | Settings - io ...
- cordova Vue 保存视频/图片到相册 - 实现下载视频/图片到相册
cordova实现保存视频到相册功能 亲测可用*(支持安卓,ios; 目前看来ios14都是可以的:没有兼容问题:) * 需要使用到插件 1.文件系统插件 https://github.com/apa ...
最新文章
- pip如何安装whl
- centos磁盘空间满查询和移动命令小记
- vector, list, map在遍历时删除符合条件的元素
- Bootstrap HTML 编码规范之JavaScript生成的标签
- Linux netfilter源码分析(7)
- linux 下的包管理器 —— apt-get 与 dpkg
- PHP通过PHP/JAVA Bridge调用JasperReport报表
- 【论文笔记】FaceNet: A Unified Embedding for Face Recognition and Clustering
- js 全国城市地区编码+拼音+大写首字母
- 五款机房教学管理系统,你的教室安装了吗
- ctfmon.exe
- 迅捷校园网自动登录脚本(网页端)
- 2017年电信业值得关注的7大颠覆性技术
- 用批处理的方式压缩文件
- 微软project服务器搭建,安装和配置 Project Server 2010
- 深度学习中常见的打标签工具和数据集资源
- lisp画弯箭头_在CAD中直接画箭头的命令的一个方法
- 归并排序-拓展至三路归并
- 2.3 视图的层次关系
- 一个SAPer的网络日志-连载二-说说MM的倒爷们