当前位置: 首页 > 面试题库 >

如何将BufferedImage转换为特定颜色?

曾洲
2023-03-14
问题内容

特别是我的图像在透明的情况下都是纯黑色的。我想在绘制图像时为图像分配简单的颜色,以便将黑色区域更改为新颜色。

我尝试使用仅返回所需颜色的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


 类似资料:
  • 问题内容: 我正在使用servlet上传图像。为了执行调整大小的操作,我将InputStream转换为BufferedImage。现在我想将其保存在mongoDB中。因为据我所知,我是mongoDB的新手,所以GridFS采用InputStream。 那么,有什么方法可以将BufferedImage转换为InputStream吗? 问题答案: 您需要使用该类将BufferedImage保存为,然后

  • 我必须将IplImage转换为BufferedImage…对我来说,一个简单的任务变得非常复杂。我正在Mac OSX上使用JavaCv 1.0(它与OpenCV 3.0链接)。 在旧的JavaCV API中有IplImage方法#GetBuffereImage,但我在新的1.0 API中再也找不到它了。所以我试着把IplImage转换成字节数组,把字节数组转换成BufferedImage。我发现这

  • 问题内容: 我一直在尝试将a转换为…而且我没有运气。 我有一个预先存在的ImageIcon,对于存在的大量BufferedImage操作,需要将其转换为Buffered Image。 我发现了几种方法,但是所有方法都占用大量CPU。 问题答案: 有什么问题:

  • 问题内容: 简单,非常简单,但Google叔叔和我似乎感到困惑。 我有已经拥有自己的单曲。 如何将获得的从转换为? 有没有解决的办法:我试图像这样多次 铸造 。 ..但是失败了。 问题答案: 要放大@Andrew Thompson的答案,请注意,实现该接口的对象知道如何绘画,但是可能尚未要求这样做。相反,BufferedImage具有“图像数据的可访问缓冲区”,程序必须通过调用该方法来呈现该缓冲区

  • 问题内容: 如何在Java中转换为? 请注意,现有答案显然是不正确的,因为它使用方法和,如果尚未加载图像(根据定义,它是一个异步对象),则可以返回。 请提供更正确的答案,或提供更多证明现有答案已经正确的证据。 问题答案: 如果这对您很重要,则可以使用“等待”来加载图像,然后就不必担心提供 看看JavaDocs了解更多详细信息 我不想添加任何GUI,我只需要下载图像或失败 好吧,如果您“需要下载”该

  • 问题内容: 我有一个图像文件的Data-URL,必须将其传递给另一个函数。从Data-URL到BufferedImage的路径必须是一个byteArray。 我的方法如下: 问题是,它总是抛出UnknownImageFormatException异常,这意味着inputImage为null,这意味着ImageIO.read无法识别图像类型。 我使用ImageIO.getReaderFormatNa