Java BufferedImage to Transparent makeTransparent(BufferedImage image, int x, int y)

Here you can find the source of makeTransparent(BufferedImage image, int x, int y)

Description

make Transparent

License

EUPL

Declaration

public static BufferedImage makeTransparent(BufferedImage image, int x, int y) 

Method Source Code

//package com.java2s;
/*******************************************************************************
 * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright>
 * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a
 * joint initiative of the Federal Chancellery Austria and Graz University of
 * Technology.//from w  w  w . j av a 2 s  .c  om
 * 
 * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
 * the European Commission - subsequent versions of the EUPL (the "Licence");
 * You may not use this work except in compliance with the Licence.
 * You may obtain a copy of the Licence at:
 * http://www.osor.eu/eupl/
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the Licence is distributed on an "AS IS" basis,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the Licence for the specific language governing permissions and
 * limitations under the Licence.
 * 
 * This product combines work with different licenses. See the "NOTICE" text
 * file for details on the various modules and licenses.
 * The "NOTICE" text file is part of the distribution. Any derivative works
 * that you distribute must include a readable copy of the "NOTICE" text file.
 ******************************************************************************/

import java.awt.image.BufferedImage;
import java.awt.image.ColorModel;
import java.awt.image.IndexColorModel;
import java.awt.image.WritableRaster;

public class Main {
    public static BufferedImage makeTransparent(BufferedImage image, int x, int y) {
        ColorModel cm = image.getColorModel();
        if (!(cm instanceof IndexColorModel))
            return image; // sorry...
        IndexColorModel icm = (IndexColorModel) cm;
        WritableRaster raster = image.getRaster();
        int pixel = raster.getSample(x, y, 0); // pixel is offset in ICM's
        // palette
        int size = icm.getMapSize();
        byte[] reds = new byte[size];
        byte[] greens = new byte[size];
        byte[] blues = new byte[size];
        icm.getReds(reds);
        icm.getGreens(greens);
        icm.getBlues(blues);
        IndexColorModel icm2 = new IndexColorModel(8, size, reds, greens, blues, pixel);
        return new BufferedImage(icm2, raster, image.isAlphaPremultiplied(), null);
    }
}

Related

  1. makeColorTransparent(final BufferedImage im, final Color color)
  2. makeColorTransparent(final BufferedImage im, final Color colorToMakeTransparent, final int tolerance)
  3. makeColorTransparent(Image im, final Color color)
  4. makeColorTransparent(Image image, final Color transparentColor)
  5. makeTranslucentImage(BufferedImage image, float transparency)
  6. makeTransparent(BufferedImage img, Color trColor)
  7. makeTransparentEdges(BufferedImage src)