前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Android Gradle 插件】自定义 Gradle 插件优化图片 ② ( 压缩 png、jpg 图片 | 使用 pngcrush 压缩工具压缩 png 图片 )

【Android Gradle 插件】自定义 Gradle 插件优化图片 ② ( 压缩 png、jpg 图片 | 使用 pngcrush 压缩工具压缩 png 图片 )

作者头像
韩曙亮
发布2023-03-30 17:22:04
9980
发布2023-03-30 17:22:04
举报
文章被收录于专栏:韩曙亮的移动开发专栏

文章目录

Android Plugin DSL Reference 参考文档 :

一、压缩 png、jpg 图片


在 Android 应用中 , 最常见的图片格式是 png 和 jpg 格式 , 为这两种图片格式选择合适的图片压缩工具 :

二、使用 pngcrush 压缩工具压缩 png 图片


pngcrush 官网 : https://pmt.sourceforge.io/pngcrush/

点击左上角的

在这里插入图片描述
在这里插入图片描述

按钮 , 即可进入下载页 ;

在这里插入图片描述
在这里插入图片描述

pngcrush 下载页 : https://sourceforge.net/projects/pmt/files/

下图中 , pngcrush 中是源码 , pngcrush-executables 是各个平台的可执行文件 , 这里我们选择下载 Windows 系统中的可执行文件 ;

在这里插入图片描述
在这里插入图片描述

进入可执行文件下载页面 https://sourceforge.net/projects/pmt/files/pngcrush-executables/ , 选择下载最新版本的软件 ;

在这里插入图片描述
在这里插入图片描述

https://sourceforge.net/projects/pmt/files/pngcrush-executables/1.8.11/ 页面中, 下载 Windows 系统中 64 位的可执行文件 ;

在这里插入图片描述
在这里插入图片描述

下载后 , 在 cmd 命令行中执行该程序 , 会提示使用方法 ;

代码语言:javascript
复制
D:\001_Develop\045_pngcrush>pngcrush_1_8_11_w64.exe

 | pngcrush-1.8.11
 |    Copyright (C) 1998-2002, 2006-2016 Glenn Randers-Pehrson
 |    Portions Copyright (C) 2005 Greg Roelofs
 | This is a free, open-source program.  Permission is irrevocably
 | granted to everyone to use this version of pngcrush without
 | payment of any fee.
 | Executable name is pngcrush_1_8_11_w64.exe
 | It was built with   bundled libpng-1.6.28
 | and is running with bundled libpng-1.6.28
 |    Copyright (C) 1998-2004, 2006-2016 Glenn Randers-Pehrson,
 |    Copyright (C) 1996, 1997 Andreas Dilger,
 |    Copyright (C) 1995, Guy Eric Schalnat, Group 42 Inc.,
 | and bundled zlib-1.2.11, Copyright (C) 1995-2017,
 |    Jean-loup Gailly and Mark Adler,
 | and using "clock()".
 | It was compiled with gcc version 4.8.0 20121031 (experimental).


If you have modified this source, you may insert additional notices
immediately after this sentence.
Copyright (C) 1998-2002, 2006-2016 Glenn Randers-Pehrson
Portions Copyright (C) 2005 Greg Roelofs

DISCLAIMER: The pngcrush computer program is supplied "AS IS".
The Author disclaims all warranties, expressed or implied, including,
without limitation, the warranties of merchantability and of fitness
for  any purpose.  The Author assumes no liability for direct, indirect,
incidental, special, exemplary, or consequential damages, which may
result from the use of the computer program, even if advised of the
possibility of such damage.  There is no warranty against interference
with your enjoyment of the computer program or against infringement.
There is no warranty that my efforts or the computer program will
fulfill any of your particular purposes or needs.  This computer
program is provided with all faults, and the entire risk of satisfactory
quality, performance, accuracy, and effort is with the user.

LICENSE: Permission is hereby irrevocably granted to everyone to use,
copy, modify, and distribute this computer program, or portions hereof,
purpose, without payment of any fee, subject to the following
restrictions:

1. The origin of this binary or source code must not be misrepresented.

2. Altered versions must be plainly marked as such and must not be
misrepresented as being the original binary or source.

3. The Copyright notice, disclaimer, and license may not be removed
or altered from any source, binary, or altered source distribution.


usage: pngcrush_1_8_11_w64.exe [options except for -e -d] infile.png outfile.png
       pngcrush_1_8_11_w64.exe -e ext [other options] file.png ...
       pngcrush_1_8_11_w64.exe -d dir/ [other options] file.png ...
       pngcrush_1_8_11_w64.exe -ow [other options] file.png [tempfile.png]
       pngcrush_1_8_11_w64.exe -n -v file.png ...
options:
         -bail (bail out of trial when size exceeds best size found
      -blacken (zero samples underlying fully-transparent pixels)
        -brute (use brute-force: try 148 different methods)
            -c color_type of output file [0, 2, 4, or 6]
        -check (check CRC and ADLER32 checksums)
            -d directory_name/ (where output files will go)
            -e extension  (used for creating output filename)
            -f user_filter [0-5] for specified method
          -fix (salvage PNG with otherwise fatal conditions)
        -force (write output even if IDAT is larger)
            -g gamma (float or fixed*100000, e.g., 0.45455 or 45455)
      -huffman (use only zlib strategy 2, Huffman-only)
         -iccp length "Profile Name" iccp_file
         -itxt b[efore_IDAT]|a[fter_IDAT] "keyword"
         -keep chunk_name
            -l zlib_compression_level [0-9] for specified method
         -loco ("loco crush" truecolor PNGs)
            -m method [1 through 150]
          -max maximum_IDAT_size [default 524288L]
          -mng (write a new MNG, do not crush embedded PNGs)
            -n (no save; doesn't do compression or write output PNG)
          -new (Use new default settings (-reduce))
 -newtimestamp (Reset file modification time [default])
       -nobail (do not bail out early from trial -- see "-bail")
      -nocheck (do not check CRC and ADLER32 checksums)
  -nofilecheck (do not check for infile.png == outfile.png)
      -noforce (default; do not write output when IDAT is larger)
     -nolimits (turns off limits on width, height, cache, malloc)
     -noreduce (turns off all "-reduce" operations)
-noreduce_palette (turns off "-reduce_palette" operation)
          -old (Use old default settings (no -reduce))
 -oldtimestamp (Do not reset file modification time)
           -ow (Overwrite)
            -q (quiet) suppresses console output except for warnings
       -reduce (do lossless color-type or bit-depth reduction)
          -rem chunkname (or "alla" or "allb")
-replace_gamma gamma (float or fixed*100000) even if it is present.
          -res resolution in dpi
          -rle (use only zlib strategy 3, RLE-only)
            -s (silent) suppresses console output including warnings
         -save (keep all copy-unsafe PNG chunks)
        -speed Avoid the AVG and PAETH filters, for decoding speed
         -srgb [0, 1, 2, or 3]
         -ster [0 or 1]
         -text b[efore_IDAT]|a[fter_IDAT] "keyword" "text"
   -trns_array n trns[0] trns[1] .. trns[n-1]
         -trns index red green blue gray
            -v (display more detailed information)
      -version (display the pngcrush version)
         -warn (only show warnings)
            -w compression_window_size [32, 16, 8, 4, 2, 1, 512]
            -z zlib_strategy [0, 1, 2, or 3] for specified method
         -zmem zlib_compression_mem_level [1-9, default 9]
        -zitxt b|a "keyword" "lcode" "tkey" "text"
         -ztxt b[efore_IDAT]|a[fter_IDAT] "keyword" "text"
            -h (help and legal notices)
            -p (pause)

D:\001_Develop\045_pngcrush>
在这里插入图片描述
在这里插入图片描述

使用 执行

代码语言:javascript
复制
pngcrush_1_8_11_w64.exe -brute -rem alla -reduce input.png output.png

命令 , 进行 png 图片压缩 ;

  • -brute 参数的作用是设置 " 从 148 种不同的方法中选择最合适的方案进行压缩 " ;
  • -rem alla 参数作用是设置 " 移除 png 格式图片中无用的模块 " ;
  • -reduce 参数作用是设置 " 排除无用的颜色 " ;

在命令最后有两个文件路径 , 前者是输入文件 , 后者是输出文件 ;

命令行输入如下 :

代码语言:javascript
复制
D:\001_Develop\045_pngcrush>pngcrush_1_8_11_w64.exe -brute -rem alla -reduce input.png output.png
  Recompressing IDAT chunks in input.png to output.png
   Total length of data found in critical chunks            =      4926
   Critical chunk length, method   1 (ws 15 fm 0 zl 4 zs 0) =      5151
   Critical chunk length, method   2 (ws 15 fm 1 zl 4 zs 0) >      5151
   Critical chunk length, method   3 (ws 15 fm 5 zl 4 zs 1) =      5137
   Critical chunk length, method   4 (ws 15 fm 0 zl 9 zs 1) >      5137
   Critical chunk length, method   5 (ws 15 fm 1 zl 9 zs 1) =      5062
   Critical chunk length, method   6 (ws 15 fm 5 zl 9 zs 0) =      4717
   Critical chunk length, method   7 (ws 15 fm 0 zl 9 zs 0) >      4717
   Critical chunk length, method   8 (ws 15 fm 1 zl 9 zs 1) >      4717
   Critical chunk length, method   9 (ws 15 fm 5 zl 2 zs 2) >      4717
   Critical chunk length, method  10 (ws 15 fm 5 zl 9 zs 1) =      4654
   Critical chunk length, method  11 (ws 15 fm 0 zl 2 zs 2) >      4654
   Critical chunk length, method 148 (ws 15 fm 5 zl 0 zs 1) >      4654
   Best pngcrush method        =  10 (ws 15 fm 5 zl 9 zs 1) =      4654
     (5.52% critical chunk reduction)
     (5.64% filesize reduction)

CPU time decode 0.011640, encode 4.277780, other 4.296384, total 4.291837 sec

压缩结果 : 源图 input.png 4.81KB , 转换后的图片 output.png 4.53KB ;

在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-10-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、压缩 png、jpg 图片
  • 二、使用 pngcrush 压缩工具压缩 png 图片
相关产品与服务
图片处理
图片处理(Image Processing,IP)是由腾讯云数据万象提供的丰富的图片处理服务,广泛应用于腾讯内部各产品。支持对腾讯云对象存储 COS 或第三方源的图片进行处理,提供基础处理能力(图片裁剪、转格式、缩放、打水印等)、图片瘦身能力(Guetzli 压缩、AVIF 转码压缩)、盲水印版权保护能力,同时支持先进的图像 AI 功能(图像增强、图像标签、图像评分、图像修复、商品抠图等),满足多种业务场景下的图片处理需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档