小编JBe*_*son的帖子

Java:使用透明像素填充BufferedImage

我有一个屏幕外的BufferedImage,用这种类型构建BufferedImage.TYPE_INT_ARGB.它可以包含任何东西,我正在寻找一种方法(相当有效地)用透明像素完全覆盖图像,从而产生"隐形"图像.

使用这样的东西:

    (bufimg.getGraphics()).setColor(new Color(10, 10, 100, 0));   
    (bufimg.getGraphics()).fillRect (0, 0, x, y);
Run Code Online (Sandbox Code Playgroud)

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

[edit]
图形文档建议不要将clearRect用于屏幕外图像,但我尝试使用与上面相同的结果.

[edit2]
在尝试使用MeBigFatGuy的代码后(谢谢!),它确实清除了图像.但它也停止进一步绘制到该图像(或似乎).这段代码例如:

    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);
Run Code Online (Sandbox Code Playgroud)

结果没有在图像上看到(我正在将图像绘制到JPanel).这是否与添加alpha值有关?

java transparency bufferedimage image

19
推荐指数
3
解决办法
3万
查看次数

C++:从函数,返回类型或引用中使用和返回字符数组?

C++:从函数,返回类型或引用中使用和返回字符数组?我正在尝试在函数外部创建一个以空字符结尾的字符串,然后运行一个将为其分配一些数据的函数.例如,char abc [80]创建于main. input()然后运行,它将返回用户输入abc.我认为这两个显而易见的方法是:

1.使输入函数将输入返回到main中的变量,如:

char input ()
{
    char input [80];
    getline(cin, choice);
    return input;
}

int main ()
{
    char choice [80];
    choice = input ();
    ...
}
Run Code Online (Sandbox Code Playgroud)

2.将字符数组传递给我的引用输入函数,然后从那里将数据放入其中:

...
void input (&variable)
{
    getline(*variable, cin);
    return;
}
int main ()
{
    char choice [80];
    char* pointer;
    input (pointer);
    ...
}
Run Code Online (Sandbox Code Playgroud)

但是,我无法通过这些方式获得工作.那么,我做错了什么,我该如何解决呢?

c++ arrays string pointers

1
推荐指数
1
解决办法
3021
查看次数

标签 统计

arrays ×1

bufferedimage ×1

c++ ×1

image ×1

java ×1

pointers ×1

string ×1

transparency ×1