trim BufferedImage Around Center - Java 2D Graphics

Java examples for 2D Graphics:BufferedImage

Description

trim BufferedImage Around Center

Demo Code

/**// w  w w.  j  a  v  a  2s. 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.Color;

import java.awt.Graphics2D;
import java.awt.Point;

import java.awt.image.BufferedImage;

public class Main {
    /**
     * @param img
     * @param center
     * @param bgColor
     * @return
     */
    public static BufferedImage trimAroundCenter(BufferedImage img,
            Point center, Color bgColor) {

        int width = img.getWidth(null);
        width = 2 * Math.max(center.x, (width - center.x));

        int height = img.getHeight(null);
        height = 2 * Math.max(center.y, (height - center.y));

        /* 
         * Create the return image
         */
        BufferedImage bi = new BufferedImage(width, height,
                BufferedImage.TYPE_INT_ARGB);
        Graphics2D g2 = bi.createGraphics();
        g2.setColor(bgColor);
        g2.fillRect(0, 0, width, height);

        g2.drawImage(img, width / 2 - center.x, height / 2 - center.y, null);

        g2.dispose();

        bi.flush();

        return bi;

    }
}

Related Tutorials