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, 冰冻鱼. 请尊重作者劳动成果,复制转载保留本站链接! 应用开发笔记
发表评论