一些PNG图像虽然只有150px x 160px宽,但有60KB文件大小。我已经通过优化器(适用于Mac的ImageOptim)运行它们,但这并没有多大帮助。
有没有办法进一步压缩它,手动或使用其他工具?普通150x160图像60KB是非常不可接受的,我不能在那里使用JPG或GIF,因为我需要透明度。
我尝试将PNG导出为 8位PNG ,文件大小明显减少!
答案 0 :(得分:8)
这与PNG压缩的工作原理有关。
与JPEG不同,PNG是一种无损格式,位置方面,但不一定是颜色方式。
那就是 - 当JPEG存储颜色从一个区域转换到另一个区域时,PNG逐个像素地存储数据,然后无损地压缩这些数据。
GIF和PNG之间的差异实际上来自传统惯例 - 传统上GIF保存为8位,而稍后出现的PNG通常保存为32位(真彩色+ alpha /透明度)。因此,32位图像每个像素需要四倍的未压缩数据,并且根据图像的具体情况,数据越详细,它就越无损压缩。
因此,如果您要将8位PNG与8位GIF进行比较,则文件大小应非常相似。真彩色PNG与真彩色GIF相同。这解释了为什么选择8位选项将解决文件大小问题。否则,它实际上是一个压缩的BMP。
答案 1 :(得分:5)
您是否尝试过PNGOUT?
答案 2 :(得分:5)
Smashing Magazine上有一些关于优化PNG图像的好文章Clever PNG Optimizaiton Techniques和PNG Optimization Guide: More Techniques。这些关注于您可以对源图像进行的操作,以使它们更好地用于PNG压缩器。
答案 3 :(得分:4)
尝试将相同的PNG导出为8位PNG,文件大小明显减少。
步骤:
将31kb图像缩小为10kb。
答案 4 :(得分:3)
答案 5 :(得分:2)
我们在大多数最新网站项目中遇到过类似的问题/问题,并通过PHP,.htaccess和Javascript开发了解决方案。我写了两篇关于理论(part 1: "shrinkImage - A method to reduce the filesize of PNG-images with full alpha-channel by about 70-80%")和我们最终得到的实用jQuery插件的文章(part 2: "shrinkImage continued - jQuery plugin and automatic generation")。
如果问题的背景在网络服务器上使用,则可以选择将其检出。
我们解决方案的背景(简而言之)是将alpha通道与图像的其余部分分开,并将其保存为相当小的PNG,将颜色信息保存为JPEG,并使用可变压缩,并将两者作为JSON文件存储在我们的服务器上这是由jQuery插件通过HTML5 Canvas请求和处理的(如果支持,则插件优雅地回退到原始PNG)。
希望这可以帮助您或其他任何面临同样问题的人,即使问题相当陈旧:)
答案 6 :(得分:0)
它已在评论中被引用,但它应该得到自己的答案。刚刚下载了PNG Gauntlet。这正是我所需要的,因为有些人真的不想学习命令行开关和PNG选项:一个简单,易于使用的Windows实用程序,您只需添加图像并单击按钮。
我从阅读其他网站时得到的印象是它不是世界上最快的工具,但对我来说这不是问题(一旦你获得了压缩图像,你排序了。
第一个文件从126k减少到47k,这对我有用。