[英]Applet not creating image file via ImageIO.write
我一直在努力處理涉及我要用於創建圖像文件(到服務器端目錄)的處理草圖的問題。 在Java中,我使用畫布的PImage,將其轉換為BufferedImage,然后通過ImageIO.write將其創建為文件。
當在我的系統上作為草圖運行時,它成功創建了文件,file.png與程序出現在同一文件夾中。 問題在於,當程序作為小程序導出時,它將不再創建文件。 如果有人對為什么程序的草圖可以創建圖像但applet無法創建圖像,這將是巨大的。
這是我正在使用的一些摘要,如果有幫助的話。 謝謝大家
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;
}
我認為這只是applet的安全限制,阻止您修改客戶端計算機上的文件系統。
看一下JNLP中的FileSaveService 。 可以在未簽名的applet中使用它,將文件保存到客戶端計算機上的文件系統中。
如果嘗試從小程序寫入服務器上的目錄,則不能直接執行此操作。 您可能需要在服務器上創建一個上傳表單,並可能使用HttpURLConnection
將POST請求發送到服務器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.