linux 下载了个图形软件 解压后 jar png,安装及使用pngquant在Linux命令行上压缩PNG图像...

pngquant是一个命令行实用程序和一个用于PNG图像有损压缩的库,本文就介绍安装及使用pngquant在Linux命令行上压缩PNG图像,pngquant可以将PNG图像的大小减少多达70%,同时保持完整的Alpha透明度。生成的图像与所有Web浏览器和操作系统兼容。

在Linux上安装pngquant

pngquant可以从你的操作系统上游存储库安装,也可以从源代码编译,从源代码构建pngquant的优点是,可以获得最新版本,而不是系统存储库中可用的软件包。

1、在CentOS/Fedora上安装pngquant

首先安装所需的依赖项:

sudo yum -y install git libpng-devel gcc cmake

然后从git克隆pngquant项目:

git clone --recursive https://github.com/kornelski/pngquant.git

运行./configure并make以在当前目录中生成pngquant可执行文件:

cd pngquant

./configure

make

如果你想在系统范围内安装它,请运行以下命令:

sudo make install

二进制文件将被复制到/usr/local/bin/pngquant:

$ pngquant --version

2.12.2 (November 2018)

2、在Ubuntu/Debian上安装pngquant

安装所需的依赖项:

sudo apt-get update

sudo apt-get install -y git gcc cmake libpng-dev pkg-config

克隆pongquant

git clone --recursive https://github.com/kornelski/pngquant.git

通过运行以下命令安装它:

cd pngquant

./configure

make

sudo make install

3、在Arch Linux/Manjaro上安装pngquant

可以使用pacman命令在Arch Linux上安装最新版本的pngquant:

sudo pacman -S pngquant

4、在Linux CLI上使用pngquant

可以使用--help选项打印所有pngquant选项:

$ pngquant --help

335f0681d1543d1a1e41706aabd65152.png

示例1:用pngquant压缩PNG图像

在我的笔记本电脑中,我有一个3.9MB的PNG图像,我将用pngquant压缩:

$ du -sh wallpaper-01.png

3.9M    wallpaper-01.png

使用pngquant压缩图像的基本示例是:

$ pngquant --force --quality=40-100 --strip --skip-if-larger \

--verbose wallpaper-01.png

wallpaper-01.png:

read 3893KB file

used gAMA and cHRM chunks to transform image to sRGB colorspace

made histogram…231676 colors found

selecting colors…14%

selecting colors…28%

selecting colors…100%

moving colormap towards local minimum

eliminated opaque tRNS-chunk entries…0 entries transparent

mapped image to new colors…MSE=6.201 (Q=79)

writing 256-color image as wallpaper-01-fs8.png

Quantized 1 image.

检查目标文件的大小:

$ du -sh wallpaper-01-fs8.png

1.4M    wallpaper-01-fs8.png

你可以看到大小是1.4MB,减少了2.5MB。

如果要使用受限文件覆盖原始文件,请使用--output file选项:

$ pngquant --force --quality=40-100 --strip --skip-if-larger \

--verbose --output wallpaper-01.png  wallpaper-01.png

wallpaper-01.png:

read 3893KB file

used gAMA and cHRM chunks to transform image to sRGB colorspace

made histogram…231676 colors found

selecting colors…6%

selecting colors…12%

selecting colors…50%

selecting colors…87%

selecting colors…100%

moving colormap towards local minimum

eliminated opaque tRNS-chunk entries…0 entries transparent

mapped image to new colors…MSE=6.111 (Q=79)

writing 256-color image as wallpaper-01.png

Quantized 1 image.

确认:

$ du -sh wallpaper-01.png

1.4M    wallpaper-01.png

示例2:压缩多个PNG图像

如果在当前文件夹中有多个PNG图像,则可以使用bash for循环来压缩所有项目:

for i in *.png; do

pngquant --force --quality=40-100 --strip --skip-if-larger \

--verbose $i

done

示例3:搜索目录中的所有PNG图像并进行压缩

你还可以使用Linux find命令查找指定目录中的所有PNG图像(参考:使用find、locate、which、whereis命令在Linux下搜索文件和文件夹),然后压缩:

find /mysite/wp-content/uploads/ -type f -iname '*.png' -exec \

pngquant --force --quality=40-100 --skip-if-larger --strip --verbose {} --output {} \;

将/mysite/wp-content/uploads/替换为递归搜索的路径。

相关主题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux使用jnative.jar的方法与在Windows上略有不同,主要是需要注意以下几个问题: 1. 首先需要安装Java开发工具包(JDK)和C/C++开发工具包,可以使用以下命令在Ubuntu中安装: ``` sudo apt-get install default-jdk build-essential ``` 2. 然后需要下载解压jnative.jar文件。可以在GitHub上找到最新版本的jnative.jar文件。 3. 在Java代码中使用jnative.jar加载.so文件和调用本地方法的方法与在Windows中略有不同。在Linux中,需要在Java命令行中指定.so文件的路径和jnative.jar文件的路径,例如: ``` java -Djnative.library.path=/path/to/libs -classpath /path/to/jnative.jar:/path/to/your/class YourClass ``` 其中,/path/to/libs是包含.so文件的目录的路径,/path/to/jnative.jar是jnative.jar文件的路径,YourClass是包含本地方法调用的Java类。 4. 在C/C++代码中实现本地方法的方法与在Windows中相同。需要注意的是,在Linux中需要使用C/C++编译器生成共享库文件(.so文件),例如: ``` gcc -shared -o libmylibrary.so MyLibrary.c ``` 其中,MyLibrary.c是包含本地方法实现的C/C++源代码文件。 如果仍然无法加载本地库文件,请检查相关的路径和库文件是否正确。你可以使用ldd命令查看.so文件依赖的库文件是否可用,例如: ``` ldd /path/to/libs/mylibrary.so ``` 这将列出.so文件依赖的所有库文件。如果其中有任何库文件无法找到,请检查系统是否安装了所有必需的库文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值