ImageMagick 的安裝及使用(總結)
一、總結
一句話總結:
ImageMagick是一款免費開源的圖片編輯軟件。既可以通過命令行使用,也可以通過C/C++、Perl、Java、PHP、Python或Ruby調用庫編程來完成。ImageMagic的主要精力集中在性能,減少bug以及提供穩定的API和ABI上。
1、python中使用imagemagick?
安裝imagemagick.exe之后,加入到系統環境中,python中使用的話:ani.save('sin.gif', writer='imagemagick', fps=30)
import numpy as np import matplotlib.pyplot as plt import matplotlib.animation as animation fig = plt.figure(figsize=(6, 6)) ax = plt.gca() ax.grid() ln1, = ax.plot([], [], '-', lw=2) ln2, = ax.plot([], [], '-', color='r', lw=2) theta = np.linspace(0, 2*np.pi, 100) r_out = 1 r_in = 0.5 def init(): ax.set_xlim(-2, 2) ax.set_ylim(-2, 2) x_out = [r_out*np.cos(theta[i]) for i in range(len(theta))] y_out = [r_out*np.sin(theta[i]) for i in range(len(theta))] ln1.set_data(x_out, y_out) return ln1, def update(i): x_in = [(r_out-r_in)*np.cos(theta[i])+r_in*np.cos(theta[j]) for j in range(len(theta))] y_in = [(r_out-r_in)*np.sin(theta[i])+r_in*np.sin(theta[j]) for j in range(len(theta))] ln2.set_data(x_in, y_in) return ln2, ani = animation.FuncAnimation(fig, update, range(len(theta)), init_func=init, interval=30) ani.save('roll.gif', writer='imagemagick', fps=100) plt.show()
二、ImageMagick 的安裝及使用
轉自或參考:ImageMagick 的安裝及使用
https://www.cnblogs.com/lfri/p/11601211.html
一、什么是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
4. https://www.imooc.com/article/46112?block_id=tuijian_wz