首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java:用透明像素填充BufferedImage

Java:用透明像素填充BufferedImage
EN

Stack Overflow用户
提问于 2011-04-15 13:26:15
回答 4查看 34.2K关注 0票数 20

我有一个用BufferedImage.TYPE_INT_ARGB类型构造的屏幕外BufferedImage。它可以包含任何东西,我正在寻找一种方法来(相当有效地)用透明像素完全覆盖图像,从而产生一个“看不见”的图像。

使用类似这样的东西:

代码语言:javascript
复制
    (bufimg.getGraphics()).setColor(new Color(10, 10, 100, 0));   
    (bufimg.getGraphics()).fillRect (0, 0, x, y);

没有任何效果。一种可能的方法可能是重写BufferedImage中的每个像素,但我不确定这是最好的解决方案。你会怎么做?

编辑

图形文档建议不要对屏幕外的图像使用clearRect,但我已经尝试过了,结果与上面的相同。

edit2

在试验了MeBigFatGuy的代码(谢谢!)之后,它确实清除了一个图像。但它也会停止对该图像(或看起来)的进一步绘制。下面的代码示例:

代码语言:javascript
复制
    BufferedImage img = new BufferedImage (600, 600, BufferedImage.TYPE_INT_ARGB);
    Graphics g = img.createGraphics ()    
    g.drawLine (100, 100, 500, 500);
    AlphaComposite composite = AlphaComposite.getInstance(AlphaComposite.CLEAR, 0.0f);
    g.setComposite(composite);
    g.setColor(new Color(0, 0, 0, 0));
    g.fillRect(0, 0, 600, 600);
    graphicsAI.setColor(new Color (10, 10, 10, 255));
    graphicsAI.drawLine (100, 100, 500, 500);

结果在图像上看不到任何东西(我将图像绘制为JPanel)。这与alpha值的添加有关吗?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5672697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档