私は画像ファイル(サーバ側のディレクトリ)を作成するために使用したい処理スケッチに関する問題に苦労しています。 Javaでは、キャンバスのPImageを使用してBufferedImageに変換し、ImageIO.writeを介してファイルとして作成します。アプレットが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;
}
変更しても例外はありません。アプレットは正常に実行されますが、ディレクトリにイメージファイルは作成されません。別の奇妙なことは、スケッチの場合、パスが単に "file.png"の場合、実際には親ディレクトリにファイルが作成されるため、パスを "./sketch/file.png"として保存する必要がありますスケッチと同じディレクトリに配置します。アプレットとしてエクスポートすると、 "./applet/file.png"または単に "file.png"に変更すると、それはまだどこにも見えません。 – Scott
それを試してみてください。スケッチとして実行するとtrueを返し、.pngファイルが正常に作成されます。私はまだアプレットとしてそれを実行するときにエラーが発生しません。 – Scott
アプレットはサーバー側のファイルにアクセスできません。サーブレットを作成する必要がある場合は、サーブレットを作成する必要があります。 – OrangeDog