■応用の森 画面から投入された画像を、Java上で縮小する方法について |
画像掲示板などで、でっかいファイルサイズの画像を大量に投稿された場合に 表示レスポンスが低下するのを予防するために サーブレット側で、画像データを縮小してしまうテクニックです。 ここでは、わかりやすいように画像の長辺サイズを320ピクセルに圧縮します。 このプログラムのベースになっているのは、 【HTML編 No002:Base64形式の画像データ(jpeg/gif/png)を表示する方法】 を流用して、画像圧縮処理を追加しています。 |
送信された画像がブラウザに表示されるはずです。 表示された画像を、PCに保存して画像編集ソフトで確認すると 長辺320ピクセルに縮小されているはずです。 |
以下、サンプルソースの解説です。 view(WebContent/imgconv.html) フォームを送信すると、結果は同じ画面が表示され、サーバーから縮小されて返却された 画像データ(Base64エンコード形式)を <img>タグにセットしています。 |
コントローラ(src/main/jp/dip/arimodoki/cntl/ImgConv.java) ブラウザから投入された画像データは、マッピングハンドラimgconvert()に渡り、 compress()メソッドで画像圧縮を行った上で、Base64エンコードしてview(HTML)に返却します。 まじめにやる場合は、compress()メソッドは別の汎用クラスに追い出した方がいいと思いますが、 ここでは手抜きして、コントローラクラスのprivateメソッドで実装しています。 |
Javaの小技集 ![]() |
Javaで画像データを縮小する方法 |