How to draw a BufferedImage with a color tint

白昼怎懂夜的黑 提交于 2020-01-10 05:31:05

问题


I'm trying to draw a BufferedImage to my Canvas with a varying color tint, but can't find any real working examples.

I don't want to generate a new tinted BufferedImage, but repeatedly draw a BufferedImage to my GUI in real time with varying color tints, depending on various conditions.
An image drawn with a tint color of 0xFF0000 will be drawn as a red-only image, while a tint color of 0xFFFFFF won't affect the image.

How would I accomplish such a thing using the Graphics2D instance of my control?

Thanks in advance.


回答1:


Maybe ColorTintFilter from Filthy Rich Clients book can help you. The relevant sample chapter from the book is available here.

Here is a code snippet that uses the filter:

BufferedImage image = ...;
BufferedImageOp imageFilter = new ColorTintFilter(Color.RED, 1.0f);
image = imageFilter.filter(image, null);


来源:https://stackoverflow.com/questions/9794189/how-to-draw-a-bufferedimage-with-a-color-tint

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!