Java 使用JMagick和ImageMagick获取图片缩略图(支持PSD)

其实,如果只是取缩略图,Java本身就自带了相关的API,不需要强大的ImageMagick,但是我的源图是PSD格式,Java默认是读不了的,有个java-psd-library开源项目,是纯java写的,经过测试,生成的图片全黑,放弃。最终选择了JMagick和ImageMagick的组合。做转换的是ImageMagick,Jmagick只是封闭的jni接口而已。
JMagick依赖ImageMagick,先装ImageMagick:

./configure
make
sudo make install
sudo ldconfig /usr/local/lib

安装JMagick:

autoconf
./configure --with-java-home=/home/fhp/Programs/jdk1.6.0_39
make all
make install

配置参数需要加上jdk目录
复制生成的库到jre的lib目录,下面是64位的路径:

cp /usr/local/lib/libJMagick.so /home/fhp/Programs/jdk1.6.0_39/jre/lib/amd64

在程序中调用(先把JMagick的src下的源代码拷到项目中):


package com.pocketdigi.psd;

import java.awt.Dimension;
import java.io.IOException;

import magick.ImageInfo;
import magick.MagickImage;

public class Test {

	/**
	 * @param args
	 * @throws IOException
	 */
	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
		 //取得原文件
        try {            
            ImageInfo sourceInfo=new ImageInfo( "/media/share/material/seal_social_icons.psd" );
            MagickImage image = new MagickImage(sourceInfo  );
            //获取图片的宽高
            Dimension dim=image.getDimension();
            MagickImage small =  image.scaleImage(dim.width,dim.height);
            small.setFileName( "/media/share/material/seal_social_icons.jpg");
            small.writeImage( new ImageInfo() );
 
        } catch (Exception e1) {
            e1.printStackTrace();
        }
		
	}

}

© 2013, 冰冻鱼. 请尊重作者劳动成果,复制转载保留本站链接! 应用开发笔记

发表评论

电子邮件地址不会被公开。 必填项已用*标注