歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Java裁剪圖片(im4Java)

ImageMagick和im4java處理圖片,im4java是ImageMagick的一個Java開源接口,使用起來非常方便。
很多網站都會用到對圖片的一些處理,包括圖片的裁剪、給圖片加水印、按比例縮放圖片等操作,用ImageMagick實現這些功能,性能非常好,圖片還不會失真,聚資庫網站,上傳圖片的時候,就是用的這個實現的。
首先要安裝ImageMagick這個工具,安裝好這個工具後,再下載im4java包放到項目lib目錄裡就行了。

注意事項:如果是在windows下運行,則需要配置ImageMagick的路徑,如果是在linux平台下,則不需要配置。

import java.io.IOException;

import org.im4java.core.ConvertCmd;
import org.im4java.core.IM4JavaException;
import org.im4java.core.IMOperation;
import org.im4java.core.IMOps;


public class CutPic {

    public static String imageMagickPath = null;
    static{
       
        imageMagickPath="C:\\ImageMagick-6.6.5-Q16 ";
    }
    /**
     * 根據坐標裁剪圖片
     *
     * @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);
    }

Copyright © Linux教程網 All Rights Reserved