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

时间: 2024-11-05 12:33:14

Linux系统下批量压缩图片尺寸大小的方法的相关文章

Linux系统如何批量压缩图片尺寸大小

现在的数码相机拍摄出来的照片像素都很高,大部份都会超过此限制,很多时候我们都要对图片进行批量压缩,Linux系统下如何批量压缩图片尺寸大小呢? 一个比较好用命令行下可以使用的 强大的免费图片工具 ImageMagick Centos系统的安装使用方法: yum install ImageMagick 再输入y确认即可安装完成 接下来调用 系统命令 其中上面 convert 中的 resize 参数可以修改imagemagick,它可以对图片进行格式转换.大小压缩.增加水印等操作,而不需要去写第三

linux系统下怎么压缩图片

 Linux系统下 批量压缩图片尺寸大小的方法 现在手机用户非常庞大,针对手机用户的流量不得不考虑,但手机网络带宽较小,怎么将互联网上的图片压缩是个难题,在windows上容易,有很多软件,但在linux上有没有办法呢? 经过多次的寻找,还是找到了些方法,这里分享下: 一个比较好用命令行下可以使用的 强大的免费图片工具 ImageMagick Centos系统的安装使用方法: yum install ImageMagick 再输入y确认即可安装完成 接下来调用 系统命令 #include <st

Linux系统下安装谷歌Google拼音输入法的方法

  Linux系统下安装谷歌Google拼音输入法的方法.目前,网络上提供的拼音输入法非常多,不过,不少网友会觉得使用谷歌拼音输入法这款软件更顺手.那么,谷歌拼音输入法怎么安装使用呢?在今天的教程中,我们就以Linux系统为例子,给大家分享一下谷歌拼音输入法的安装方法.需要说明的是,本操作方法是基于Linux系统的CentOS 5进行的! 谷歌拼音输入法安卓版 推荐:谷歌拼音输入法安卓版 SCIM-GooglePinyin 项目试图将 Android 上的 Google 拼音输入法移植到 GNU

GIF Movie Gear修改gif图片尺寸大小的方法

  GIF Movie Gear修改gif图片尺寸大小的方法 1.下载并安装GIF Movie Gear这款软件之后,打开该软件. 2.打开gif图片(本文使用的是李钟硕gif表情图),以下为原图,更多gif表情图推荐:李钟硕卖萌表情包 李钟硕gif表情图 3.选择:动画,选择:调整大小,出现下图界面; GIF Movie Gear 4.填写修改尺寸的数据,本案例是将宽度500改为400,记住,一定要选择:保持高宽比,否则图片会变形. 5.选择:文件,选择:保存或者另存为. 6.使用GIF Mo

Python实现更改图片尺寸大小的方法(基于Pillow包)_python

本文实例讲述了Python实现更改图片尺寸大小的方法.分享给大家供大家参考,具体如下: 1.PIL包推荐Pillow . 2.源码: #encoding=utf-8 #author: walker #date: 2014-05-15 #function: 更改图片尺寸大小 import os import os.path from PIL import Image ''' filein: 输入图片 fileout: 输出图片 width: 输出图片宽度 height:输出图片高度 type:输出

在linux系统下安装两个nginx的简单方法_Linux

在linux下安装nginx的时候,一般在./configure的阶段会要求通过prefix设置安装路径.因此,在./configure的时候指定不同的prefix就可以安装多个nginx啦. 值得注意的是,安装完之后,两个nginx的监听端口要设置成不同的监听端口.否则,会有一个nginx无法启动. ./configure --prefix=/home/work/nginx1 .....//第一个nginx的安装配置 make && make install ./configure --

在Linux系统中批量删除多个文件的方法总结

  当我们在linux系统中要删除数万或者数十万甚至数百万的文件时使用rm -rf *就不太好用,因为要等待很长一段时间.在这种情况之下我们可以使用linux系统命令rsync来巧妙的处理.rsync实际上用的是替换原理,处理数十万个文件也是秒删. 1. rsync安装,有些系统默认安装有该命令 ubuntu系统: 代码如下: sudo apt-get install rsync fedora 系统: 代码如下: sudo yum install rsync 其他的可以源码安装,到下面的网站下载

Windows和Linux系统下perl连接SQL Server数据库的方法_perl

本文将提供一些perl连接Microsoft SQL Server数据库的实例.perl脚本运行在Windows和Linux平台. Windows平台 如果在Windows平台下运行perl脚本,建议使用依赖DBI的两个模块包,提供标准的数据库接口模块. DBD::ODBC DBD::ADO 使用DBD::ODBC 如果选用DBD::ODBC,下面的实例代码将展示如何连接到SQL Server数据库: 复制代码 代码如下: use DBI;   # DBD::ODBC   my $dsn = '

Linux系统下修改最大传输单元MTU的方法

  最大传输单元(Maximum Transmission Unit,MTU)是指一种通信协议的某一层上面所能通过的最大数据报大小(以字节为单位).最大传输单元这个参数通常与通信接口有关(网络接口卡.串口等). 因特网协议允许IP分片,这样就可以将数据报分成足够小的片段以通过那些最大传输单元小于该数据报原始大小的链路了.这一分片过程发生在IP层(OSI模型的第三层,即网络层),它使用的是将分组发送到链路上的网络接口的最大传输单元的值.原始分组的分片都被加上了标记,这样目的主机的IP层就能将分组重