Linux系統下批量壓縮圖片尺寸大小的方法

來源:互聯網
上載者:User

   現在手機使用者非常龐大,針對手機使用者的流量不得不考慮,但行動電話通訊頻寬較小,怎麼將互連網上的圖片壓縮是個難題,在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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.