Java利用ImageMagick调用linux系统命令实现Ai或者PSD文件转化为jpg或者png文件

 利用ImageMagick调用linux系统命令得方式实现了这个需求。所有的操作都在centeros 6.5下进行。

  ImageMagick安装

1、确保系统已经安装以下包

可以通过下面的命令进行查看
rpm -qa |grep libjpeg
安装
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 freetype
yum install zlib

2.如果以前安装过,卸载掉ImageMagick:
yum remove ImageMagick
yum install ImageMagick

3.安装完成后检查
convert --version

4.建立个Demo工程

import java.io.BufferedReader;
import java.io.InputStreamReader;

import magick.MagickException;

public class Command {

    public static void main(String[] args) throws MagickException {
        
        //调用示例
        Command.convertImages("/home/zhx/Desktop/ai.ai", "500", "840", "jpg", "test", "/home/zhx/Desktop");  
        
    }
    /**
     *
     * @param filePath    文件路径
     * @param width       宽
     * @param height      高
     * @param genType     生成文件类型即后缀名
     * @param genFileName 生成文件名称
     * @param genPath     生成文件路径
     */
    public static void convertImages(String filePath,String width,String height,String genType,String genFileName,String genPath) {
        
        String commandStr = "convert -resize "+width+"x"+height+" "+filePath+" "+genPath+"/"+genFileName+"."+genType;
        System.out.println(commandStr);
        BufferedReader br = null;  
        try {  
            Process p = Runtime.getRuntime().exec(commandStr);  
            br = new BufferedReader(new InputStreamReader(p.getInputStream()));  
            String line = null;  
            StringBuilder sb = new StringBuilder();  
            while ((line = br.readLine()) != null) {  
                sb.append(line + "\n");  
            }  
            System.out.println(sb.toString());  
        } catch (Exception e) {  
            e.printStackTrace();  
        }   
        finally  
        {  
            if (br != null)  
            {  
                try {  
                    br.close();  
                } catch (Exception e) {  
                    e.printStackTrace();  
                }  
            }  
        }  
    }  
}


猜你喜欢

转载自blog.csdn.net/zhonghuixiong/article/details/50774512