我正在尝试获取分辨率小于100 kB的512px x 512px的PNG图片。
目前,文件大小约为350 kB。我正在尝试减小文件大小,而我正在考虑的一种方法是减小颜色深度。
这是PNG图片的信息:
每个组件位-> 8
每像素位数-> 32
我编写了一些代码来创建CGContext,每个像素的位数不同,但是我认为这不是写方法。
我不想使用 UIImage.jpegData(compressionQuality:CGFloat),因为我需要维护Alpha通道。
我已经在Objective-C中找到了一些代码,但是没有用。
我正在 Swift
答案 0 :(得分:1)
您需要以某种方式抽取原始图像,例如将一些最低有效位清零或降低分辨率。但是,这完全破坏了首先使用PNG的目的,该目的是用于无损图像压缩。
如果要进行有损图像压缩(在这种方法中先进行PNG抽取,然后进行PNG抽取),则应改用JPEG,它可以更有效地利用这些位来重现心理视觉上高度相似的图像。作为PNG的有损预处理步骤,它比您或我想出的任何方法都要高效。