作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
具体来说,我有透明的纯黑色图像。我想在绘制图像时为图像分配一种任意颜色,以便将黑色区域更改为新颜色。
我尝试使用刚刚返回我想要的颜色的 RGBImageFilter,但出了点问题,根本没有绘制任何东西。 (ColourFilter 扩展了 RGBImageFilter 并仅在其 filterRGB() 方法中返回设置的颜色。)
BufferedImage tileImage = _tiles.get( tileID );
ColourFilter cFilt = new ColourFilter();
cFilt.setColour( colour );
FilteredImageSource filteredSrc = new FilteredImageSource( tileImage.getSource(), cFilt );
Image finalImage = Toolkit.getDefaultToolkit().createImage(filteredSrc);
bufferGraphics2D.drawImage(finalImage.....
最佳答案
看AlphaComposites ,特别是 DST_IN:
BufferedImage original = ... // dimensions width x height, black on transparent
// create red image
BufferedImage redVersion = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
Graphics2D g = (Graphics2D) redVersion.getGraphics();
g.setColor(Color.red);
g.fillRect(0, 0, width, height);
// paint original with composite
g.setComposite(AlphaComposite.DstIn);
g.drawImage(image, 0, 0, width, height, 0, 0, width, height, null);
// redVersion is now a red version of original
关于java - 如何将 BufferedImage 转换为某种颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6853384/
我是一名优秀的程序员,十分优秀!