私はメディアマネージャーでウェブプロジェクトをやっています。高解像度の画像をアップロードし、これらの画像を低解像度に変換して、結果の画像をより小さなサイズに圧縮する必要があります。これはJavaを使用してどのように可能ですか?
可能であれば、ソースコードを投稿してください。
ありがとう、Naveen
私はメディアマネージャーでウェブプロジェクトをやっています。高解像度の画像をアップロードし、これらの画像を低解像度に変換して、結果の画像をより小さなサイズに圧縮する必要があります。これはJavaを使用してどのように可能ですか?
可能であれば、ソースコードを投稿してください。
ありがとう、Naveen
正しいかどうかはわかりませんが、画像のサイズを変更したい場合は、Image クラスにgetScaledInstanceメソッドがあります。
Image theImage = ...
Image scaled = theImage.getScaledInstance(32, -1, Image.SCALE_FAST);
詳細については、Imageのドキュメントを参照してください。
この目的でJAIが使用されているのを見てきました。
高解像度画像で何もする必要がない場合は、画像リーダーにパラメーターを追加できます。
ImageReadParam param = reader.getDefaultReadParam();
param.setSourceSubsampling(4, 4, 0, 0);
img = reader.read(0);
これにより、ソース データの 4 行/列のうち 3 行がスキップされます。
imagemagickバイナリがインストールされた Linux サーバーで実行している場合は、 Runtime.getRuntime.exec()
on を実行するだけで済みます/usr/bin/convert
。一意の名前に対して読み取り/書き込みを行っていることを確認してください (それFile.createTempFile()
を確認するために使用できます)。