在Java中操作png

在Java中操作png,java,png,java-2d,javax.imageio,Java,Png,Java 2d,Javax.imageio,有没有一种简单的方法可以在Java中操作PNG?我知道我可以读入BuffereImage并将其写回,但我需要在图像边缘添加清晰的像素。有没有简单的方法可以做到这一点?一个快速的解决方案是使用该方法直接设置RGBA值。一个快速的解决方案是使用该方法直接设置RGBA值。从未尝试过,但您可以尝试创建一个大小合适的缓冲图像,包括图像周围所需的边框。因此,对于5像素的边框,代码可能类似于: BufferedImage image = new BufferedImage(width, height, Buf

有没有一种简单的方法可以在Java中操作PNG?我知道我可以读入BuffereImage并将其写回,但我需要在图像边缘添加清晰的像素。有没有简单的方法可以做到这一点?

一个快速的解决方案是使用该方法直接设置RGBA值。

一个快速的解决方案是使用该方法直接设置RGBA值。

从未尝试过,但您可以尝试创建一个大小合适的缓冲图像,包括图像周围所需的边框。因此,对于5像素的边框,代码可能类似于:

BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
Graphics2D g2d = image.createGraphics();
g2d.setColor( new Color(0, 0, 0, 0) );
g2d.fillRect(0, 0, width, height);
g2d.drawImage(image, 5, 5, null);

或者,如果您想保持图像的原始大小,则只需使用4种fillRect(…)方法覆盖图像的上/下/左/右边缘。

从未尝试过,但您可以尝试以适当的大小创建缓冲图像,包括图像周围所需的边框。因此,对于5像素的边框,代码可能类似于:

BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
Graphics2D g2d = image.createGraphics();
g2d.setColor( new Color(0, 0, 0, 0) );
g2d.fillRect(0, 0, width, height);
g2d.drawImage(image, 5, 5, null);

或者,如果您想保持图像的原始大小,则只需使用4种fillRect(…)方法来覆盖图像的上/下/左/右边缘。

这绝对是我想要的简单解决方案。请注意,这与图像的特定格式(PNG或其他格式)完全无关。这绝对是我想要的简单解决方案。请注意,这与图像的特定格式(PNG或其他格式)完全无关。