InputStreamで受けた画像をjavaからコマンドラインのImageMagickのconvertを呼んで加工し、OutputStreamで返すという事は可能でしょうか?
サンプルソースがあるとうれしいです。
ソースで言うと↓な感じです。
public static void convert(
InputStream src,
OutputStream dst)
throws Exception {
process1 = Runtime.getRuntime().exec(”convert〜〜〜”);
でOutPutStreamに加工した画像が入る。
}
convertコマンドは、入力ファイル名と出力ファイル名が必要なんですよね。
Javaのプログラムで作業用のファイルを作成してはどうでしょうか、
たとえば、以下のような感じです。
public static void convert(inputStream src, OutputStread dst) throws Exception {
FileOutputStream fos = new FileOutputStread(”/tmp/out.jpg”);
FileInputStream fis;
int b;
// src-->/tmp/out.jpg
while ( (b = src.read()) != -1 ) {fos.write(b);}
fos.close();
// convert
Runtime.getRuntime.exec(”convert -geometry 200x135 /tmp/out.jpg /tmp/in.jpg”);
// /tmp/out.jpg-->dst
fis = new FileInputStream(”/tmp/in.jpg”);
while ( (b = fis.read()) != -1 ) {dst.write(b);}
close b;
}
質問から少し外れるかもしれません。
確かに JMagick は開発途上です。私も使いたくなかったので、以前は ”ImageI/O” を使いました。
J2SE の 1.4 以降であれば標準でバンドルされていますので、ImageMagick を必要としない分、
こちらを使う方が無難かと思われます。
URLの記事の中では画像のロード、縮小、フォーマットを指定してセーブなどのソースが示されています。
的外れならごめんなさい。
ありがとうございます!
ImageI/Oだと特許の関係でgifで保存ができませんねん・・・orz
ありがとうございます!