Java BufferedImage Crop imgUtilFastCrop(BufferedImage src, int x, int y, int width, int height)

Here you can find the source of imgUtilFastCrop(BufferedImage src, int x, int y, int width, int height)

Description

Quickly crops an image from its source.

License

Open Source License

Parameter

Parameter Description
src The source image.
x The x coordinate to start at.
y The y coordinate to start at.
width The width to clip.
height The height to clip.

Declaration

public static BufferedImage imgUtilFastCrop(BufferedImage src, int x,
        int y, int width, int height) 

Method Source Code

//package com.java2s;
/*/*from  w  ww .  j  a  v a  2 s.com*/
 * Copyright (C) 2012 JPII and contributors
 *
 * This program 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.
 *
 * This program 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 program. If not, see <http://www.gnu.org/licenses/>.
 */

import java.awt.Graphics;

import java.awt.image.BufferedImage;

public class Main {
    /**
     * Quickly crops an image from its source.
     * @param src The source image.
     * @param x The x coordinate to start at.
     * @param y The y coordinate to start at.
     * @param width The width to clip.
     * @param height The height to clip.
     * @return
     */
    public static BufferedImage imgUtilFastCrop(BufferedImage src, int x,
            int y, int width, int height) {
        if (src == null)
            return null;
        if (x == 0 && y == 0 && width == src.getWidth()
                && height == src.getHeight())
            return imgUtilFastCopy(src);
        else {
            BufferedImage b = new BufferedImage(width, height,
                    src.getType());
            Graphics g = b.getGraphics();
            g.drawImage(src, -x, -y, null);
            g.dispose();
            return b;
        }
    }

    /**
     * Quickly copies an image.
     * @param src The source image.
     * @return The replicated image.
     */
    public static BufferedImage imgUtilFastCopy(BufferedImage src) {
        if (src == null)
            return null;
        BufferedImage b = new BufferedImage(src.getWidth(),
                src.getHeight(), src.getType());
        b.setData(src.getRaster());
        return b;
    }
}

Related

  1. cropToBeSameSize(BufferedImage image1, BufferedImage image2)
  2. divideImage(BufferedImage bi, int rows, int cols, int width, int height)
  3. doCrop(BufferedImage bufferedImage, int cropX, int cropY, int width, int height)
  4. drawCropped(JPanel contentPane, ActionListener listener, BufferedImage img, int type, int sx1, int sy1, int sx2, int sy2, int x, int y, int scale)
  5. ImageCrop(String sourcePath, String descPath, int cropX, int cropY, int width, int height)
  6. zealousSubsCrop(BufferedImage img)