我需要创建一个BufferedImage
具有指定背景颜色的矩形,在背景上绘制一些图案并将其保存到文件中。我不知道如何创建背景。
我正在使用嵌套循环:
BufferedImage b_img = ...
for every row
for every column
setRGB(r,g,b);
但是,当图像较大时,速度非常慢。
如何以更有效的方式设置颜色?
获取图像的图形对象,将当前绘画设置为所需的颜色,然后调用fillRect(0,0,width,height)
。
BufferedImage b_img = ...
Graphics2D graphics = b_img.createGraphics();
graphics.setPaint ( new Color ( r, g, b ) );
graphics.fillRect ( 0, 0, b_img.getWidth(), b_img.getHeight() );
问题内容: 我有两个从png加载的BufferedImages。第一个包含图像,第二个包含图像的Alpha蒙版。 我想通过应用Alpha蒙版从两者创建组合图像。我的谷歌福使我失败。 我知道如何加载/保存图像,我只需要从两个BufferedImage到具有正确alpha通道的一个BufferedImage的位。 问题答案: 通过一次获取多个像素以上的RGB数据,可以改善您的解决方案(请参见http:
问题内容: 特别是我的图像在透明的情况下都是纯黑色的。我想在绘制图像时为图像分配简单的颜色,以便将黑色区域更改为新颜色。 我尝试使用仅返回所需颜色的RGBImageFilter,但出现了问题,根本没有绘制任何内容。(ColourFilter扩展了RGBImageFilter,并仅在其filterRGB()方法中返回设置的颜色。) 问题答案: 查看AlphaComposites,尤其是DST_IN:
问题内容: 我想知道是否有一种更有效的方法来替换BufferedImage中的颜色。目前,我使用以下方法: 我用要替换的颜色和要替换的颜色(包括透明度)填充数组。然后,我遍历图像中的每个像素。如果它与阵列中的一种颜色匹配,我将其替换为阵列中的新颜色。这是代码: 我正在处理的图像很小,约为20x20像素。但是,似乎必须有一种更有效的方法来执行此操作。 问题答案: 您可以修改基础ColorModel而
我需要一个javafx程序来设置文本的随机颜色和不透明度,我不知道该怎么做?下面是我的代码示例
问题内容: 我正在开发一个捕获屏幕快照并从捕获的图像创建视频的应用程序。但是问题在于,当生成视频时,生成的视频中的颜色非常粉红色。我认为这是因为我正在使用BufferedImage.TYPE_3BYTE_BGR类型操纵捕获的图像以显示光标。有人可以告诉我如何解决此问题,我希望视频的颜色与屏幕的实际颜色相同。 为了捕获屏幕图像,我正在执行以下操作: 对于操作图像,我正在做如下操作: 请告诉我如何获取
问题内容: 在StackOverflow上已经存在类似此链接的问题,并且可接受的答案是“广播”: 在我的程序中,我尝试: 不幸的是,我得到运行时错误: sun.awt.image.ToolkitImage无法转换为java.awt.image.BufferedImage 显然,投射不起作用。 问题是:将Image转换为BufferedImage的正确方法是(或存在)什么? 问题答案: 从Java游