使用ImageMagick進行圖片縮放、合成與裁剪(js+python)

來源:互聯網
上載者:User

最近的項目裡面需要對書籍的封面進行處理,就是加一條陰影線形成書脊的凹凸感,然後將書脊切出,分成兩部分,以便用戶端實現開啟動畫。由於需要在伺服器端處理,使用就研究使用imagemagick來進行。同時準備封裝了一個Node.js和Python的方法,主要還是講一下然後使用imagemagick來對圖片進行縮放、合成後進行裁剪吧。

首先素材檔案如下(左邊未處理封面,右邊為需要合成上去的陰影):

安裝ImageMagick的過程就不講了,可以參考官網的安裝方法:http://www.imagemagick.org/script/install-source.php

首先對封面圖片file.png進行縮放,縮放到高度為1024,產生newfile.png方便與陰影圖片合成,命令如下:

複製代碼 代碼如下:convert -resize x1024 file.png newfile.png

convert進行縮放的方法如下:

convert -resize 1024 file.jpg newfile.jpg
得到圖片寬為1024,高根據原始圖片比例計算而來

convert -resize x768 file.jpg newfile.jpg
得到的圖片高位768,寬根據原始圖片比例計算而來

convert -resize 1024×768! file.jpg newfile.jpg
固定寬高縮放,不考慮原是圖寬高的比例,把圖片縮放到指定大小。

convert -resize “1024×768>” file.jpg newfile.jpg
只有當src.jpg的寬大於1024或高大於768時候,才進行縮小處理,否則產生newfile.jpg和file.jpg具有一樣的尺寸。

convert -resize “1024×768<” file.jpg newfile.jpg
只有當src.jpg的寬小於1024或高小於768時候,才進行放大處理,否則產生newfile.jpg和file.jpg具有一樣的尺寸。

接下來就是將陰影檔案合成到封面上(將yy.png從左上方合成到file.png產生newfile.png):

複製代碼 代碼如下:composite -gravity northwest yy.png file.png newfile.png

這裡主要解釋一下-gravity參數:

-gravity northwest指右上方
如果要求在正中間,參數為center
如果要求在右下角,參數為southeast
其他按照方位進行

合成後效果如下:

最後就是圖片的裁剪,將圖片分為兩部分,陰影部分left.png和其他部分right.png:

複製代碼 代碼如下:
left:convert file.png -gravity southwest -crop 31x1024+0+0 left.png
right:convert file.png -gravity southeast -crop 737x1024+0+0 right.png


裁剪方法的調整如下:

convert file.png -crop widthxheight+x+y newfile
其中widthxheight是靶心圖表片的尺寸,+x+y是原始圖片的座標點,這兩組值至少要出現一組,也可以同時存在。另外該命令也可使用gravity來重新定義座標系統。

最後成果如下:

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.