GraphicsMagick+im4java 圖片處理

來源:互聯網
上載者:User

最近團隊內部分享GraphicsMagick+im4java 圖片處理 就把如何安裝,運行都統一整理一下。

詳細如下:

在windows上安裝ImageMagick:

download 地址:http://ftp.icm.edu.pl/pub/unix/graphics/GraphicsMagick/windows/

關於Q8,Q16,Q32的說明:(建議使用8,現在數位相機照的相片,每一種顏色就是8位深,3種顏色就是24位,所以選8)
支援的參數有3種,分別是 8, 16, or 32。預設值是16。
Q8表示: 8-bits per pixel quantum
Q16表示:16-bits per pixel quantum
Q32表示:32-bits per pixel quantum
使用16-bit per pixel quantums在處理圖片時比8-bit慢15%至50%,並須要更多的記憶體。
處理一張1024x768像素的圖片8-bit要使用3.6M記憶體,16-bit要使用7.2M記憶體。計算方法是: (5 * Quantum Depth * Rows * Columns) / 8

配置 環境變數加入PATH:E:\Program Files\GraphicsMagick-1.3.18-Q8(個人習慣放在E盤)

二. Linux下的安裝與配置(下載時請注意 有32位系統包,有64位系統包,根據情況選擇。這裡是centos 64位的)
   1、先查看所需的包是否安裝 
    rpm -q libjpeg libjpeg-devel libpng libpng-devel freetype freetype-   devel libtiff 

先把一些圖片補丁包安裝。

download地址:http://sourceforge.net/projects/graphicsmagick/files/graphicsmagick/1.3.18/GraphicsMagick-1.3.18.tar.gz/download

解壓tar zvxf GraphicsMagick-1.3.18.tar.gz
cd GraphicsMagick-1.3.18
./configure --prefix=/usr/local/GraphicsMagick --with-quantum-depth=8   --enable-share

下載 im4java

downlaod 地址:http://sourceforge.net/projects/im4java/?source=directory

im4java的思路是通過線程或者進程執行graphicsmagick的命令,它的api只是為了能產生命令,而不是調用graphicsmagick的庫。

我使用的最新的jar :im4java-1.4.0-1.5.jar

測試代碼如下:

IM4JAVA是同時支援ImageMagick和GraphicsMagick的,這裡是bool值,如果為true則使用GM,如果為false支援IM。

/** *  * @param picPath 圖片路徑 * @param drawPicPath draw後的路徑 * @param width draw後的寬度 * @param height draw後的高度  * @throws IOException * @throws InterruptedException * @throws IM4JavaException */public static void drawImg(String picPath,String drawPicPath,int width, int height) throws IOException, InterruptedException, IM4JavaException{IMOperation op = new IMOperation();op.addImage();op.resize(width, height);op.font("Arial").fill("red").draw("text 100,100 www.taobao.com");  op.quality(85d);op.addImage();//IM4JAVA是同時支援ImageMagick和GraphicsMagick的,如果為true則使用GM,如果為false支援IM。ConvertCmd cmd = new ConvertCmd(true);String osName = System.getProperty("os.name").toLowerCase();    if(osName.indexOf("win")>=0) {  //linux下不要設定此值,不然會報錯    cmd.setSearchPath("E://Program Files//GraphicsMagick-1.3.18-Q8");    }cmd.setErrorConsumer(StandardStream.STDERR);cmd.run(op, picPath , drawPicPath);}/** *  * @param args */public static void main(String args[]){try {drawImg("D://tester.jpg", "D://testerTwo.jpg", 300,400);} catch (Exception e) {e.printStackTrace();}}

聯繫我們

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