linux图片压缩,ubuntu图像编辑软件
大家好,今天来为大家分享linux图片压缩的一些知识点,和ubuntu图像编辑软件的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大概率可以解决您的问题,接下来我们就一起来看看吧!
Linux系统下批量压缩图片尺寸大小的方法
现在手机用户非常庞大,针对手机用户的流量不得不考虑,但手机网络带宽较小,怎么将互联网上的图片压缩是个难题,在windows上容易,有很多软件,但在linux上有没有办法呢?
经过多次的寻找,还是找到了些方法,这里分享下:
一个比较好用命令行下可以使用的强大的免费图片工具 ImageMagick
Centos系统的安装使用方法:
yum install ImageMagick
再输入y确认即可安装完成
接下来调用系统命令
复制代码代码如下:
#include
int main()
{
printf(“Please install ImageMagick before run this programme,else it will not run correctlyn”);
system(“mkdir small”);
system(“cp*.jpg./small”);
system(“find./small-name‘*.jpg’-exec convert-resize 300×300{}{} \;”);
system(“pwd”);
system(“rename.jpg _small.jpg small/*.jpg”);
printf(“nConvert pictures finished,plesae check itn”);
return 0;
}
其中上面 convert中的 resize参数可以修改imagemagick,它可以对图片进行格式转换、大小压缩、增加水印等操作,而不需要去写第三方的程序,只需要写简单的SHELL脚本就可以完成图片压缩操作,接下来UBUNTU上介绍下:
安装命令:
sudo apt-get install imagemagick
其它linux有对应的软件安装命令,以下有我写的两个脚本,分别对图片进行批量格式以及压缩操作:
图片格式转换,这里的示例是将[bB][mM][pP](所有BMP文件)格式的文件,转换为占空间小的jpg文件:
复制代码代码如下:
#!/bin/sh
for img in `find./-name“*.[bB][mM][pP]“`; do
#change upper filename to lower
_imglower=`echo$img|tr“[:upper:]”“[:lower:]“`;
#get file’s basename
_basename=`basename$_imglower.bmp`;
#get file’s dir
_dirname=`dirname$img`;
#get desc filename with path
_basefullname=$_dirname”/”$_basename”.jpg”;
#do convert
convert$img$_basefullname;
#remove bmp file
rm$img;
echo“deal$_basefullname successfully”;
done
图片压缩脚本:
复制代码代码如下:
for img in `find./-name“*.[jJ][pP][gG]“`; do
convert-resize 85%*85%$img$img-resized;
rm$img;
mv$img-resized$img
echo$img
done
for img in `find./-name“*.[pP][nN][gG]“`; do
convert-resize 85%*85%$img$img-resized;
rm$img;
mv$img-resized$img
echo$img
done
for img in `find./-name“*.[gG][iI][fF]“`; do
convert-resize 85%*85%$img$img-resized;
rm$img;
mv$img-resized$img
echo$img
done
Linux下压缩和优化jpg与png图片的方法
jpegotim压缩jpg图片
安装jpegotim
如果你有epel yum源,使用如下命令即可
复制代码代码如下:
# yum install jpegoptim
压缩图片命令
复制代码代码如下:
# jpegoptim ttlsa.jpg
ttlsa.jpg 1425x823 24bit N JFIF [OK] 1074449--> 853514 bytes(20.56%), optimized.
可以看到ttlsa.jpg自动被压缩了20.56%。
再压缩一次
复制代码代码如下:
# jpegoptim ttlsa.jpg
ttlsa.jpg 1425x823 24bit N JFIF [OK] 853514--> 853514 bytes(0.00%), skipped.
图片已经被压缩过了,所以提示跳过,不需要在被压缩。
提供一个批量压缩的脚本
复制代码代码如下:
for i in/data/site/image.ttlsa.com/images/*.jpg; do jpegoptim$i; done
pngcrush优化PNG图片
项目地址:
复制代码代码如下:
# wget
# tar-xzvf pngcrush-1.7.88.tar.gz
# cd pngcrush-1.7.88
# make
# cp pngcrush/usr/bin
pngcrush使用语法
复制代码代码如下:
usage: pngcrush [options except for-e-d] infile.png outfile.png
pngcrush-e ext [other options] file.png...
pngcrush-d dir/ [other options] file.png...
pngcrush-ow [other options] file.png [tempfile.png]
pngcrush-n-v file.png...
options:
-bail(bail out of trial when size exceeds best size found
-bit_depth depth(deprecated)
-blacken(zero samples underlying fully-transparent pixels)
-brute(use brute-force: try 148 different methods)
........更多内容请自己看帮助......
pngcrush简单命令
复制代码代码如下:
pngcrush-brute-e"myimage_compressed.png" myimage.png
.........省略.....
Best pngcrush method= 123(ws 15 fm 4 zl 9 zs 1)= 124820
for output to ttlsattlsa_new.png
(1.63% critical chunk reduction)
(1.63% filesize reduction)
CPU time decoding 1.560, encoding 7.640, other 0.030, total 9.230 sec.
批量优化PNG图片
复制代码代码如下:
pngcrush-brute-d"/data/site/image.ttlsa.com/images"*.png
Linux系统下在命令行中压缩JPEG图像的方法
如今拍照设备(如智能手机、数码相机)拍出来的图片分辨率越来越大。甚至3630万像素的Nikon D800已经冲入市场,并且这个趋势根本停不下来。如今的拍照设备不断地提高着照片分辨率,使得我们不得不压缩后,再上传到有储存限制、带宽限制的云。
事实上,这里有一个非常简单的方法压缩JPEG图像。一个叫“jpegoptim”命令行工具可以帮助你“无损”美化JPEG图像,让你可以压缩JPEG图片而不至于牺牲他们的质量。万一你的存储空间和带宽预算真的很少,jpegoptim也支持“有损”压缩来调整图像大小。
如果要压缩PNG图像,参考这个指南的例子。
安装jpegoptim
Ubuntu, Debian或 Linux Mint:
复制代码代码如下:$ sudo apt-get install jpegoptim
Fedora:
复制代码代码如下:$ sudo yum install jpegoptim
CentOS/RHEL安装,先开启EPEL库,然后运行下列命令:
复制代码代码如下:$ sudo yum install jpegoptim
无损压缩jpeg图像
为了无损地压缩一副JPG图片,使用:
复制代码代码如下:$ jpegoptim photo.jpg
photo.jpg 2048x1536 24bit N ICC JFIF [OK] 882178--> 821064 bytes(6.93%), optimized.
注意,原始图像会被压缩后图像覆盖。
如果jpegoptim不能无损美化图像,将不会覆盖它:
复制代码代码如下:$ jpegoptim-v photo.jpg
photo.jpg 2048x1536 24bit N ICC JFIF [OK] 821064--> 821064 bytes(0.00%), skipped.
如果你想保护原始图片,使用"-d"参数指明保存目录
复制代码代码如下:$ jpegoptim-d./compressed photo.jpg
这样,压缩的图片将会保存在./compressed目录(以同样的输入文件名)
如果你想要保护文件的创建修改时间,使用"-p"参数。这样压缩后的图片会得到与原始图片相同的日期时间。
复制代码代码如下:$ jpegoptim-d./compressed-p photo.jpg
如果你只是想看看无损压缩率而不是真的想压缩它们,使用"-n"参数来模拟压缩,然后它会显示出压缩率。
复制代码代码如下:$ jpegoptim-n photo.jpg
有损压缩JPG图像
万一你真的需要要保存在云空间上,你还可以使用有损压缩JPG图片。
这种情况下,使用"-m"选项,质量数范围0到100。(0是最好质量,100是最差质量)
例如,用50%质量压缩图片:
复制代码代码如下:$ jpegoptim-m50 photo.jpg
photo.jpg 2048x1536 24bit N ICC JFIF [OK] 882178--> 301780 bytes(65.79%), optimized.
在牺牲质量的基础上,将会得到一个更小的图片。
一次压缩多张JPEG图像
最常见的情况是需要压缩一个目录下的多张JPEG图像文件。为了应付这种情况,你可以使用接下来的脚本。
复制代码代码如下:#!/bin/sh
#压缩当前目录下所有*.jpg文件
#保存在./compressed目录
#并拥有与原始文件同样的修改日期
for i in*.jpg; do jpegoptim-d./compressed-p"$i"; done