首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PNG优化与环境影响

PNG优化与环境影响
EN

Stack Overflow用户
提问于 2017-07-12 13:15:32
回答 2查看 194关注 0票数 1

PNG可以以不同的方式进行优化。

为了减少带宽使用和数据传输,减少对环境的影响,减少网站的PNG大小似乎是一个不错的选择。这是由谷歌和其他服务推荐的。

但是,优化PNG是否会对计算机读取CPU负载以呈现CPU负载产生影响?换句话说,缩小PNG尺寸以优化尺寸是限制环境影响的好主意吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-13 05:18:39

优化PNG对计算机读取CPU负载以呈现CPU负载有影响吗?换句话说,缩小PNG尺寸以优化尺寸是限制环境影响的好主意吗?

我不确定一个问题来自另一个问题,但关于第一个问题:

不,努力优化PNG压缩,使图像变小,只对压缩机一侧产生影响。在客户端(解压缩)方面,速度或CPU使用率的差异实际上为零。

更准确地说,PNG压缩主要受两个因素的影响:“像素滤波”算法/策略(特定于PNG)和ZLIB压缩级别。优化第一个不影响解压缩(“未过滤”逻辑是一个和相同的)。第二个因素对减压速度(it might even be slightly beneficious)影响很小或没有影响。

票数 2
EN

Stack Overflow用户

发布于 2017-07-14 13:40:10

正如@leonbloy在他的回答中所指出的,zlib压缩级别对解压缩速度几乎没有或根本没有影响。然而,PNG滤波器的选择确实有一个显著的效果: AVG和PAETH滤波器都需要更多的内存和CPU时间去过滤,而不是简单的过滤器。

Libpng允许您通过"png_set_filter()“函数来控制这一点。若要使用自适应滤波进行最大压缩,请使用

代码语言:javascript
复制
png_set_filter(write_ptr, 0, PNG_ALL_FILTERS);

为了避免较慢的AVG和PAETH滤波,请使用

代码语言:javascript
复制
png_set_filter(write_ptr, 0, PNG_NONE_FILTER|PNG_SUB_FILTER|PNG_UP_FILTER);

或者使用libpng-1.6.22及更高版本,您可以更方便地使用

代码语言:javascript
复制
png_set_filter(write_ptr, 0, PNG_FAST_FILTERS);

对于pngcrash-1.8.1或更高版本,您可以使用

代码语言:javascript
复制
pngcrush -speed file.png file_pc.png

若要选择NONE、SUB和UP过滤器,但要避免AVG和PAETH (请注意pngcrush也有"-fast“选项,但这是为了不同的目的,即选择快速压缩方法)。

当输出的预期用途是通过网络向应用程序传输时,文件大小是主要影响,您可能希望使用最大压缩。但是当文件将从本地磁盘或内存中访问时,解码速度将占主导地位,您可能希望使用“速度”优化,这将使文件大小有所增加,以获得更快的解码速度。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45058742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档