這個問題的圖像的每個像素是這個問題的一個副本: Making every pixel of an image having a specific color transparent製造具有特定顏色透明
但我需要一個Java等同。我需要一個圖像類型(如PNG
,BMP
,...),它可以保持完全透明(alpha = 0)的顏色。當然還有一種將它保存爲文件的方法。
這個問題的圖像的每個像素是這個問題的一個副本: Making every pixel of an image having a specific color transparent製造具有特定顏色透明
但我需要一個Java等同。我需要一個圖像類型(如PNG
,BMP
,...),它可以保持完全透明(alpha = 0)的顏色。當然還有一種將它保存爲文件的方法。
import java.awt.*;
import java.awt.image.*;
public class Transparency {
public static Image makeColorTransparent
(Image im, final Color color) {
ImageFilter filter = new RGBImageFilter() {
// the color we are looking for... Alpha bits are set to opaque
public int markerRGB = color.getRGB() | 0xFF000000;
public final int filterRGB(int x, int y, int rgb) {
if ((rgb | 0xFF000000) == markerRGB) {
// Mark the alpha bits as zero - transparent
return 0x00FFFFFF & rgb;
}
else {
// nothing to do
return rgb;
}
}
};
ImageProducer ip = new FilteredImageSource(im.getSource(), filter);
return Toolkit.getDefaultToolkit().createImage(ip);
}
}
修改代碼,使每一個像素的透明
來源:HTTP://www.rgagnon.com/javadetails/java-0265.html
使用ImageIO.read
讀取文件和ImageIO.write
寫入。使用getRGB
和setRGB
方法BufferedImage
更改顏色。
可以使用LookupOp
具有四-component LookupTable
,它將alpha分量設置爲與背景匹配的顏色爲零。例子可以在Using the Java 2D LookupOp Filter Class to Process Images和Image processing with Java 2D中找到。