【问题标题】:Making every pixel of an image having a specific color transparent使具有特定颜色的图像的每个像素透明
【发布时间】:2010-12-07 19:25:23
【问题描述】:

这个问题是这个问题的重复: Making every pixel of an image having a specific color transparent

但我需要一个 Java 等价物。我需要一个图像类型(如PNGBMP、...),它可以保持这种颜色的完全透明(alpha = 0)。当然还有一种将其保存为文件的方法。

【问题讨论】:

    标签: java image transparency


    【解决方案1】:
    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

    【讨论】:

      【解决方案2】:

      使用ImageIO.read 读取文件,使用ImageIO.write 写入。使用BufferedImagegetRGBsetRGB 方法更改颜色。

      【讨论】:

        【解决方案3】:

        您可以将LookupOp 与四分量LookupTable 一起使用,将与背景匹配的颜色的alpha 分量设置为零。示例可以在Using the Java 2D LookupOp Filter Class to Process ImagesImage processing with Java 2D 中找到。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-07-06
          • 2011-01-08
          • 1970-01-01
          • 1970-01-01
          • 2015-03-29
          • 2015-04-16
          • 2013-07-17
          • 1970-01-01
          相关资源
          最近更新 更多