linux的convert圖片處理工具


得到一個圖片的尺寸,

identify test.png

結果為:

test.png PNG 178x15 178x15+0+0 16-bit PseudoClass 65536c 2.28kb

使用shell

identify test.png | cut -d ' ' -f 3 | cut -d 'x' -f 1

identify test.png | cut -d ' ' -f 3 | cut -d 'x' -f 2

分別得到寬和高

不過要是在java中通過runtime來運行這個命令是很麻煩的,它使用空格把參數分割出來的,它不會認為引號引起來的是一個參數,這個也有解決辦法,這里就不說了。

所以,還是用identify test.png這個命令,得到的字符串用java的方式處理一下,也很簡單。

1、壓縮一個圖片,限定高度為60, 寬高比例不變,但如果寬大於90,截取中間一段

convert source.jpg -resize x60 result_60.jpg

獲取result_60.jpg的寬和高

if( 寬 > 90 ){

    convert result_60.jpg -gravity center -extent 90x60 result_60.jpg

}

這里要注意, -gravity和-extent配合使用在6.2.8的版本中是不正常的,可以選擇用crop

計算 dx = (寬-90)/2

convert result_60.jpg -crop 90x60+${dx}+0 result_60.jpg

2、壓縮一個圖片,限定高和寬, 寬高比例不變,需要適當的裁減

例如:壓縮為60x60, 這是一個特例,寬高正好相同,如果不同,計算會有所不同,但方法一樣。

獲取source.jpg的寬和高

if( 寬 > 高 ){

  convert source.jpg -resize x60 -gravity center -extent 60x60 result_60.jpg

}

else{

  convert source.jpg -resize 60x -gravity center -extent 60x60 result_60.jpg

}

3、截圖

convert result_60.jpg -crop wxh+dx+dy result_60.jpg

w為要截取圖片的寬

h為要截取圖片的高

dx,dy是開始截取的偏移位置,以左上角為原點

4、拼圖

橫向拼接

convert 1.jpg 2.jpg 3.jpg +append result.jpg

縱向拼接

convert 1.jpg 2.jpg 3.jpg -append result.jpg

橫向+縱向

convert /( 1.jpg 2.jpg 3.jpg +append /) /
/( 4.jpg 5.jpg 6.jpg +append /) /
/( 7.jpg 8.jpg 9.jpg +append /) /
-append result.jpg

5、256色png壓縮
convert -strip -depth 8 -colors 256 soure.png result.png
advpng -z -4 result.png

6、圖片上寫字
convert source.jpg -font xxx.ttf -fill red -pointsize 48 -annotate +50+50 @text.txt result.jpg
使用字體xxx.ttf, 字體用紅色填充,字體48pixel, 位置(50,50), 文字在text.txt文件中

7、圖片上畫長方形
convert source.jpg fill none -stroke red -strokewidth 3 -draw rectangle 50,50 100,100 result.jpg
還一個線寬為3,顏色為紅色,從50,50到100,100的正方形,不填充
畫線為 -draw line 50,50 100,100 
相關鏈接:

1. http://dikar.iteye.com/blog/1576056

2. http://www.linuxbyte.org/linux-convert-mini-howto.html

3. http://www.cnblogs.com/chenwenbiao/archive/2011/07/25/2116152.html

4. http://wiki.klniu.com/zh/Linux常用命令或工具集 (10)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM