加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 使用ImageMagick压缩PNG图像

发布时间:2020-12-13 16:57:56 所属栏目:PHP教程 来源:网络整理
导读:要压缩JPEG图像,我可以这样做: $thumb = new Imagick();$thumb-readImage("url");$thumb-setImageCompression(Imagick::COMPRESSION_JPEG);$thumb-setImageCompressionQuality(80); 但是,我还需要压缩PNG图像(保持alpha透明度)以减小尺寸.有没有办法用Image
要压缩JPEG图像,我可以这样做:

$thumb = new Imagick();
$thumb->readImage("url");
$thumb->setImageCompression(Imagick::COMPRESSION_JPEG);
$thumb->setImageCompressionQuality(80);

但是,我还需要压缩PNG图像(保持alpha透明度)以减小尺寸.有没有办法用ImageMagick做到这一点?

解决方法

pngquant有效地量化或减少图像中的颜色数量,直到质量明显下降之前.你可以在ImageMagick中尝试类似的东西……

首先,使用内置的rose:image,检查图像中的颜色数量 – 它是3,019:

convert rose: -format %k info:
3019

并制作一个PNG并检查大小 – 它是6,975字节

convert rose: rose.png
ls -l rose.png
-rw-r--r--@ 1 mark  staff  6975  5 Sep 20:57 rose.png

enter image description here

现在将玫瑰色转换为255种颜色并检查大小 – 它降至3,691字节:

convert rose: -colors 255 rose255.png
ls -l rose255.png
-rw-r--r--  1 mark  staff   3691  5 Sep 21:02 rose255.png

enter image description here

现在将玫瑰色转换为64种颜色并检查大小 – 低至2,361字节

convert rose: -colors 64 rose64.png
ls -l rose64.png
-rw-r--r--  1 mark  staff  2361  5 Sep 21:04 rose64.png

enter image description here

优化或减少PNG文件大小的另一种方法是使用-strip去除图像中的任何元数据 – 例如拍摄照片的日期和时间,相机和镜头模型,创建图像的程序名称和版权和颜色配置文件.

此外,值得记住……通常,透明像素的颜色是无关紧要的,因为你看不到它们,但统一的东西通常压缩得更好.因此,通过使用-alpha背景,在保存PNG文件时使所有透明像素的颜色相同可能是个好主意.

convert -size 512x512 xc:gray +noise random a.png                                      # create an image of random noise
-rw-r--r--@ 1 mark  staff  1576107  6 Sep 11:37 a.png                                  # 157kB

convert -size 512x512 xc:gray +noise random -alpha transparent a.png                   # recreate but make transparent
-rw-r--r--@ 1 mark  staff  1793567  6 Sep 11:38 a.png                                  # 179kB,extra transparency channel

convert -size 512x512 xc:gray +noise random -alpha transparent -alpha background a.png # make all transparent pixels black
-rw-r--r--@ 1 mark  staff  1812  6 Sep 11:38 a.png                                     # Presto!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读