gpt4 book ai didi

java - 在 Java 中创建 alpha 图像

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:54:05 26 4
gpt4 key购买 nike

我即将开始一个项目,该项目将生成一些带有 alpha(渐变)的 PNG,并希望在 java 中以编程方式绘制它们。

对于(一个简单的)示例,我想绘制一个框,添加一个阴影,然后将其保存到一个 PNG 文件中,然后该文件可以覆盖在其他图形上。

  1. 使用标准 JRE 系统库是否可行?
  2. 哪些库可以简化此类操作?

谢谢。

最佳答案

Is this possible with the standard JRE system libraries?

是的,这是可能的,而且也很简单。下面的代码生成此图像(透明 png):

screenshot

public static void main(String[] args) throws IOException {

int x = 50, y = 50, w = 300, h = 200;

// draw the "shadow"
BufferedImage img = new BufferedImage(400, 300, BufferedImage.TYPE_INT_ARGB);
Graphics g = img.getGraphics();
g.setColor(Color.BLACK);
g.fillRect(x + 10, y + 10, w, h);

// blur the shadow
BufferedImageOp op = getBlurredOp();
img = op.filter(img, null);

// draw the box
g = img.getGraphics();
g.setColor(Color.RED);
g.fillRect(x, y, w, h);

// write it to disk
ImageIO.write(img, "png", new File("test.png"));
}

private static BufferedImageOp getBlurredOp() {

float[] matrix = new float[400];
for (int i = 0; i < 400; i++)
matrix[i] = 1.0f/400.0f;

return new ConvolveOp(new Kernel(20, 20, matrix),
ConvolveOp.EDGE_NO_OP, null);
}

Which libraries would make this kind of operation simple?

我会说这取决于您的其他用例。对于像盒子和椭圆这样的简单形状,我会选择上面的解决方案,不需要库。

关于java - 在 Java 中创建 alpha 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10058740/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com