一、什么是Imagemagick?
ImageMagick是一款免費開源的圖片編輯軟件。既可以通過命令行使用,也可以通過C/C++、Perl、Java、PHP、Python或Ruby調用庫編程來完成。ImageMagic的主要精力集中在性能,減少bug以及提供穩定的API和ABI上。
二、下載和安裝
這里以Windows為例
使用16-bit在處理圖片時比8-bit慢15%至50%,內存也為2倍。比如處理一張1024x768像素的圖片8-bit要使用3.6M內存,16-bit要使用7.2M內存。
這里我們選擇下載官方推薦的文件,也就是第一個:ImageMagick-7.0.8-12-Q16-x64-dll.exe
這個7.0版本和6點幾版本有些不同,系統環境變量都是自動配置好的。
使用 magick --version 查看是否安裝成功:
三、使用
如果很多子命令不能直接使用,則可以把他們當做magick的子命令使用,如:
identify bbb.png
magick identify bbb.png
1、轉換格式
magick test.jpg test.png
表示把test.jpg這個圖片另存一份為test.png,同時修改了圖片名稱和格式
(原來jpg比png小不少
2、合成gif
magick a.jpg b.jpg c.jpg test.gif
magick *.jpg images.gif
將指定的圖片合成一個gif(好像以第一張圖的大小為准)
3、調整圖片大小
按比例改變
magick b.png -resize 200% b1.png magick convert b.png -resize 200% b1.png magick convert -resize 200% b.png b1.png
圖片寬擴展為原來的2倍,高縮小為原來的一半
magick convert b.png -resize 200x50% b7.png magick convert b.png -resize 200%x50% b8.png
寬調整為100,高按原來圖片寬高比例跟着調整
convert -resize 100 b.png b15.png
高調整為200,寬按原來圖片寬高比例跟着調整
convert -resize x200 b.png b16.png
4、移除圖片內嵌的所有配置文件
magick convert -strip 1.jpg
5、裁剪圖片
crop參數可以把一副圖像分成若干塊大小一樣的圖片
magick img1.jpg -crop 500x500 dest.jpg
例如,原圖片尺寸為1920x1200,所以可以分割出12塊圖片,注意如果尺寸不是目標圖片的整數倍,那么右邊緣和下邊緣的一部分圖片就用實際尺寸
在原始圖像上裁剪一張指定尺寸的小圖
magick img1.jpg -crop 600x450+300+600 dest.jpg
600x450是寬乘高,+300+600是橫縱坐標
6、圖片取反
magick convert a.jpg -negate canny.jpg
7、壓縮圖片
將圖片質量降為原來的10%(即壓縮掉了90%),取值范圍1 ( 最低的圖像質量和最高壓縮率) 到100 ( 最高的圖像質量和最低壓縮率),默認值根據輸出格式有75、92、100,選項適用於JPEG / MIFF / PNG.
magick convert -quality 80 1.jpg 2.jpg
實例:生成縮略圖:
-resize,定義輸出的縮略圖尺寸;-quality 70,降低縮略圖的質量為70%;-strip:讓縮略圖移除圖片內嵌的所有配置文件,注釋等信息,以減小文件大小。
magick convert -resize 100x200 -quality 70 -strip 1.jpg 2.jpg
8、給圖片加邊框
設置邊框顏色為藍色(也可以用rgb(0,0,255)或者rgb(0%,0%,100%)代替),寬的邊框和高的邊框分別為寬的5%、高的5%,也就是說,圖片的高和寬都增大了10%
magick 1.jpg -bordercolor blue -border 5% 2.jpg
9、濾鏡
magick convert monochrome .jpg -monochrome monochrome_example.jpg magick convert charcoal .jpg -charcoal 1.2 charcoal _example.jpg
-monochrome沒有相關的配置選項;但是-charcoal需要設置一個相關因子,1左右能實現類似炭筆繪畫的效果。
magick convert a.jpg -edge 3 edge.jpg magick convert a.jpg -colors 2 color.jpg
減少為2種顏色,這些選項也可以一起使用。
10、邊緣檢測
magick convert a.jpg -canny 1 canny.jpg
使用canny算法,帶粗粒度參數。
圖像取反的話就很好看了:
magick convert a.jpg -canny 1 -negate canny.jpg
參考鏈接:
1. https://www.cnblogs.com/wbxk/p/9794094.html
2. https://blog.csdn.net/qq_24127015/article/details/86523738
3. https://blog.csdn.net/wangmeitingaa/article/details/88885711