crop BufferedImage by rectangle - Java 2D Graphics

Java examples for 2D Graphics:BufferedImage Crop

Description

crop BufferedImage by rectangle

Demo Code

/**/*from  ww w.  j a  v  a  2  s  . c o m*/
 *   Copyright 2012 Dr. Krusche & Partner PartG
 *
 *   AMES-Web-Service is free software: you can redistribute it and/or 
 *   modify it under the terms of the GNU General Public License 
 *   as published by the Free Software Foundation, either version 3 of 
 *   the License, or (at your option) any later version.
 *
 *   AMES- Web-Service is distributed in the hope that it will be useful,
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
 * 
 *  See the GNU General Public License for more details. 
 *
 *   You should have received a copy of the GNU General Public License
 *   along with this software. If not, see <http://www.gnu.org/licenses/>.
 *
 */
//package com.java2s;

import java.awt.Graphics2D;

import java.awt.Rectangle;

import java.awt.image.BufferedImage;

public class Main {
    /**
     * @param image
     * @param clip
     * @return
     * @throws Exception
     */
    public static BufferedImage crop(BufferedImage image, Rectangle clip)
            throws Exception {

        /* 
         * Create the return image
         */
        BufferedImage retval = createImage(clip.width, clip.height);
        Graphics2D g2 = retval.createGraphics();

        /* 
         * Render the clip region
         */
        g2.drawImage(
                image.getSubimage(clip.x, clip.y, clip.width, clip.height),
                0, 0, null);

        g2.dispose();
        retval.flush();

        return retval;

    }

    /**
     * @param width
     * @param height
     * @return
     */
    public static BufferedImage createImage(int width, int height) {
        return new BufferedImage(width, height,
                BufferedImage.TYPE_4BYTE_ABGR);
    }
}

Related Tutorials