当前位置: 首页 > 工具软件 > Imagetool > 使用案例 >

工具使用:ImageTools图片处理 (ImageMagick)

高嘉熙
2023-12-01
  • 需要注意的是:在mac和linux上不要添加imageMagickPath
    和设置 convert.setSearchPath(imageMagickPath);
    public class ImageTools {  

    /** 
     * ImageMagick的路径 
     */  
    public static String imageMagickPath = null;  
    static {  
        /** 
         *  
         * 获取ImageMagick的路径 
         */  
        Properties prop = new PropertiesFile().getPropertiesFile();  
        //linux下不要设置此值,不然会报错  
        imageMagickPath = prop.getProperty("imageMagickPath");  
    }  

    /** 
     *  
     * 根据坐标裁剪图片 
     *  
     * @param srcPath   要裁剪图片的路径 
     * @param newPath   裁剪图片后的路径 
     * @param x         起始横坐标 
     * @param y         起始纵坐标 
     * @param x1        结束横坐标 
     * @param y1        结束纵坐标 
     */  

    public static void cutImage(String srcPath, String newPath, int x, int y, int x1,   int y1) throws Exception {  
        int width = x1 - x;  
        int height = y1 - y;  
        IMOperation op = new IMOperation();  
        op.addImage(srcPath);  
        /** 
         * width:  裁剪的宽度 
         * height: 裁剪的高度 
         * x:       裁剪的横坐标 
         * y:       裁剪的挫坐标 
         */  
        op.crop(width, height, x, y);  
        op.addImage(newPath);  
        ConvertCmd convert = new ConvertCmd();  

        // linux下不要设置此值,不然会报错  
        convert.setSearchPath(imageMagickPath);  

        convert.run(op);  
    }  

    /** 
     *  
     * 根据尺寸缩放图片 
     * @param width             缩放后的图片宽度 
     * @param height            缩放后的图片高度 
     * @param srcPath           源图片路径 
     * @param newPath           缩放后图片的路径 
     */  
    public static void cutImage(int width, int height, String srcPath,  String newPath) throws Exception {  
        IMOperation op = new IMOperation();  
        op.addImage(srcPath);  
        op.resize(width, height);  
        op.addImage(newPath);  
        ConvertCmd convert = new ConvertCmd();  
        // linux下不要设置此值,不然会报错  
        convert.setSearchPath(imageMagickPath);  
        convert.run(op);  

    }  

    /** 
     * 根据宽度缩放图片 
     *  
     * @param width            缩放后的图片宽度 
     * @param srcPath          源图片路径 
     * @param newPath          缩放后图片的路径 
     */  
    public static void cutImage(int width, String srcPath, String newPath)  throws Exception {  
        IMOperation op = new IMOperation();  
        op.addImage(srcPath);  
        op.resize(width, null);  
        op.addImage(newPath);  
        ConvertCmd convert = new ConvertCmd();  
        // linux下不要设置此值,不然会报错  
        convert.setSearchPath(imageMagickPath);  
        convert.run(op);  
    }  

    /** 
     * 给图片加水印 
     * @param srcPath            源图片路径 
     */  
    public static void addImgText(String srcPath) throws Exception {  
        IMOperation op = new IMOperation();  
        op.font("宋体").gravity("southeast").pointsize(18).fill("#BCBFC8")  
                .draw("text 5,5 juziku.com");  
        op.addImage();  
        op.addImage();  
        ConvertCmd convert = new ConvertCmd();  
        // linux下不要设置此值,不然会报错  
        convert.setSearchPath(imageMagickPath);  
        convert.run(op, srcPath, srcPath);  
    }  

    public static void main(String[] args) throws Exception {  
        // cutImage("D:\\test.jpg", "D:\\new.jpg", 98, 48, 370,320);  
        // cutImage(200,300, "/home/1.jpg", "/home/2.jpg");  
        addImgText("//home//1.jpg");  
    }  
}  

下面测试一个macdown绘制的流程图

Created with Raphaël 2.1.0 Here is a title A A B B C C D D Normal line Dashed line Open arrow Dashed open arrow
Created with Raphaël 2.1.0 连接建立的过程 客户主机 客户主机 服务器主机 服务器主机 连接请求(SYN=1,seq=client_isn) 授予连接(SYN=1,seq=client_isn) ack=client_isn+1 确认(SYN=0,seq=client_isn+1) ack=server_isn+1
 类似资料: