使用透明背景动态创建和渲染图像,以便与drawImage一起使用

Noc*_*wer 0 java transparency image render draw

有人可以举例说明如何在Java中动态创建图像,在其上绘制线条等,然后绘制图像,以便未绘制的区域在绘制过程中保持透明?

coo*_*ird 5

可以使用BufferedImage支持透明度的图像类型,例如BufferedImage.TYPE_INT_ARGB:

BufferedImage img = new BufferedImage(100, 100, BufferedImage.TYPE_INT_ARGB);
Run Code Online (Sandbox Code Playgroud)

可以BufferedImage通过调用BufferedImage.createGraphics获取Graphics2D对象来绘制,然后执行一些绘制:

BufferedImage img = new BufferedImage(100, 100, BufferedImage.TYPE_INT_ARGB);

Graphics2D g = img.createGraphics();
g.drawLine(0, 0, 10, 10);  // draw a line.
g.dispose(); 
Run Code Online (Sandbox Code Playgroud)

然后,因为BufferedImage是一个子类Image,可以Image使用其中一个Graphics.drawImage接受一个绘制到另一个Image.