我一直在努力解决一个涉及我想用来创建图像文件(到服务器端目录)的处理草图的问题。在 Java 中,我使用画布的 PImage,将其转换为 BufferedImage,然后通过 ImageIO.write 将其创建为文件。
它在我的系统上作为草图运行时成功创建文件,file.png 出现在与程序相同的文件夹中。问题是当程序作为小程序导出时,它不再创建文件。如果有人对为什么程序的草图可以创建图像而小程序不能创建图像有任何意见,那将是巨大的。
如果有任何帮助,这里有几个我正在使用的片段。谢谢大家。
PImage pimg = get();
BufferedImage canvas = convertToBufferedImage(pimg);
File file = new File("./sketch/file.png");
try
{
ImageIO.write(canvas, "PNG", file);
}
catch (Exception e) { println(e); }
这是将 PImage 转换为 BufferedImage 的方法。
BufferedImage convertToBufferedImage(PImage pimg){
PGraphics pg = createGraphics(width, height, JAVA2D);
pg.image(pimg, 0, 0);
BufferedImage img = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB_PRE);
Graphics2D g2d = img.createGraphics();
g2d.drawImage((java.awt.Image)pg.image, 0, 0, width, height, this);
g2d.finalize();
g2d.dispose();
return img;
}