Java 使具有特定颜色的图像的每个像素透明
此问题与此问题重复: 但我需要一个Java等价物。我需要一种图像类型(比如Java 使具有特定颜色的图像的每个像素透明,java,image,transparency,Java,Image,Transparency,此问题与此问题重复: 但我需要一个Java等价物。我需要一种图像类型(比如PNG,BMP,…),它可以保持这种颜色的完全透明性(alpha=0)。当然还有一种将其保存为文件的方法。用于读取文件和写入文件。使用的getRGB和setRGB方法更改颜色 import java.awt.*; import java.awt.image.*; public class Transparency { public static Image makeColorTransparent (Ima
PNG
,BMP
,…),它可以保持这种颜色的完全透明性(alpha=0)。当然还有一种将其保存为文件的方法。用于读取文件和写入文件。使用的getRGB
和setRGB
方法更改颜色
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您可以将a与四分量LookupTable
一起使用,将与背景匹配的颜色的alpha分量设置为零。示例可在和中找到