簡體   English   中英

Applet無法通過ImageIO.write創建映像文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM