centos 6.2配置jmagick 6.4.0

來源:互聯網
上載者:User

經過在網上的各種搜羅,終於搞定了,記錄一下,有些地方需要使用root許可權的,就sudo了:

(一)請先確保系統已經安裝以下包:

rpm -q  libjpeg libjpeg-devel libpng libpng-devel libtiff libtiff-devel libungif libungif-devel perl-CPAN perl make gcc

或者直接用以下命令安裝
yum install libjpeg
yum install libjpeg-devel
yum install libpng
yum install libpng-devel
yum install libtiff
yum install libtiff-devel
yum install libungif
yum install libungif-devel
yum install perl-CPAN 

(例如,如果沒安裝perl-CPAN,則後面會報錯Can't locate ExtUtils/MakeMaker.pm)

(二)安裝ImageMagick,最好保證ImageMagick和JMagic版本一致

1. 下載ImageMagick-6.4.0-0.tar.gz from 
     wget http://downloads.jmagick.org/6.4.0/ImageMagick-6.4.0-0.tar.gz,
2.  tar -xzvf ImageMagick-6.4.0-0.tar.gz
3.  mkdir /usr/local/imagemagick
4.  cd ImageMagick-6.4.0-0
5.  ./configure --prefix=/usr/local/imagemagick/
6.  先make,  然後make install, 再vi /etc/profile, 在最後添加: export $PATH=$PATH:/usr/local/imagemagick/bin

以上安裝好之後使用以下方法校正是否安裝成功:check: convert 1.jpg -resize 50% 11.jpg

(三)安裝JMagick,最好保證ImageMagick和JMagic版本一致

1.  下載jmagick from http://downloads.jmagick.org/6.4.0/jmagick-6.4.0-src.tar.gz
2.   tar -xzvf jmagick-6.4.0-src.tar.gz
3.   cd jmagick-6.4.0-src
4.   ./configure
5.   make, make install
6.   cd lib
#so檔案必須放在/usr/lib/ ,否則 java找不到.so庫檔案
7.   cp *.so /usr/lib/  (我試過,只放一個so,貌似也可以,但是只是簡單測試,可能複雜的需要全面)
#把so庫檔案路徑載入到設定檔
8.   vi /etc/ld.so.conf, add: /usr/local/imagemagick/lib
9.   ldconfig #載入至庫檔案快取

(四)測試代碼:

package com.xingleilee;

import java.awt.Dimension;
import java.text.SimpleDateFormat;
import java.util.Calendar;

import magick.ImageInfo;
import magick.MagickImage;

public class Test {

static {
// 不能漏掉這個,不然jmagick.jar的路徑找不到
System.setProperty("jmagick.systemclassloader", "no");
}

/**
* 壓縮圖片
*
* @param filePath
* 源檔案路徑
* @param toPath
* 縮圖路徑
*/
/**
* @param filePath
* @param toPath
* @throws Exception
*/
public static void createThumbnail(String filePath, String toPath)
throws Exception {
ImageInfo info = null;
MagickImage image = null;
Dimension imageDim = null;
MagickImage scaled = null;
try {
info = new ImageInfo(filePath);
image = new MagickImage(info);
imageDim = image.getDimension();
int wideth = imageDim.width;
int height = imageDim.height;

height = height/2;
wideth = wideth/2;

scaled = image.scaleImage(wideth, height);// 小圖片檔案的大小.
scaled.setFileName(toPath);
scaled.writeImage(info);
} catch (Exception e) {
System.out.println(filePath + "壓縮 excpeiton");
e.printStackTrace();
} finally {
if (image != null) {
image.destroyImages();
}
if (scaled != null) {
scaled.destroyImages();
}
}
}

/**
* @param args
*/
public static void main(String[] args) throws Exception {

String srcFile1 = "/home/xingleilee/Downloads/images/1.jpg";
String destFile1 = "/home/xingleilee/Downloads/images/";
String destFile11 = "/home/xingleilee/Downloads/images_dest/";

//start:2012-06-17 22:49:18
//end:2012-06-17 22:53:38

System.out.println("start:"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Calendar.getInstance().getTime()));
for (int i = 0; i < 1000; i++) {
createThumbnail(destFile1 + i + "_dest.jpg", destFile11 + i + "_dest.jpg");
}

System.out.println("end:"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Calendar.getInstance().getTime()));
}

}

相關文章

聯繫我們

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