Вопрос

Я борюсь с проблемой, связанной с эскизом обработки, который я хочу использовать для создания файла изображения (в каталог на стороне сервера). В Java я использую пробежку холста, преобразованного в буферризаж, который затем создан в виде файла через Imagio.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); }

И вот метод, который преобразует опору для буферизации.

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;
}
Это было полезно?

Решение

Я думаю, что это просто ограничения безопасности апплета, препятствующие вам модификации файловой системы на клиентском компьютере.

Взгляни на FilesAveservice в JNLP. Это можно использовать из неподписанного апплета, чтобы сохранить файл на файловую систему на клиентском компьютере.

Если вы пытаетесь написать в каталог на сервер От апплета вы не можете сделать это напрямую. Вам нужно будет создать форму загрузки на сервере и, возможно, использовать HttpURLConnection отправить запрос на почту на сервер.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top