Java 切圖

切圖的代碼如下:

package com.fnpac.gotop.helper.image;

import javax.imageio.ImageIO;
import javax.imageio.ImageReadParam;
import javax.imageio.ImageReader;
import javax.imageio.stream.ImageInputStream;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Iterator;

/**
 * Created by liuchunlong on 2018/1/13.
 * <p>
 * 圖片處理工具類
 */
public class ImageUtils {

    /**
     * 圖片剪裁
     *
     * @param x          距離左上角的x軸距離
     * @param y          距離左上角的y軸距離
     * @param width      寬度
     * @param height     高度
     * @param sourcePath 圖片源
     * @param descpath   目標(biāo)位置
     */
    public static void imageCut(int x, int y, int width, int height,
                                String sourcePath, String descpath) {
        FileInputStream fis = null;
        ImageInputStream iis = null;
        try {

            String fileSuffix = sourcePath.substring(sourcePath.lastIndexOf(".") + 1);
            Iterator<ImageReader> it = ImageIO.getImageReadersByFormatName(fileSuffix);
            ImageReader reader = it.next();

            fis = new FileInputStream(sourcePath);
            iis = ImageIO.createImageInputStream(fis);

            reader.setInput(iis, true);

            ImageReadParam param = reader.getDefaultReadParam();
            Rectangle rect = new Rectangle(x, y, width, height);
            param.setSourceRegion(rect);

            BufferedImage bi = reader.read(0, param);
            ImageIO.write(bi, fileSuffix, new File(descpath));
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (fis != null) {
                try {
                    fis.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                fis = null;
            }
            if (iis != null) {
                try {
                    iis.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                iis = null;
            }
        }
    }
}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,765評(píng)論 25 709
  • 前言 很多圈友最近圍在一圈討論一個(gè)話題——切圖。那什么是切圖?切圖對(duì)美術(shù)和程序有什么關(guān)系?怎么切圖?切圖有哪些方法...
    七景鳴閱讀 12,318評(píng)論 3 17
  • 愛(ài)是深深的理解和接受。
    珺曦閱讀 224評(píng)論 0 1
  • 淮竹聽(tīng)寒mio閱讀 277評(píng)論 0 0
  • 我喜愛(ài)一切不徹底的事物 ——張定浩 我喜愛(ài)一切不徹底的事物。 細(xì)雨中的日光,春天的冷, 秋千搖碎大風(fēng)...
    默契逍遙閱讀 571評(píng)論 0 2

友情鏈接更多精彩內(nèi)容