JavaのWebアプリケーション開発フレームワークによる、Webサイト開発の顛末記です。

EclipseのMavenを使った、Spring-MVC、Thymeleaf、MyBatis 等のプログラミングテクニックを、
備忘録的に記録しています。実際に動くソースコードを多用して説明していますので、
これからEclipseや、Spring-MVCを始めたいと思っている人にとって、少しでも参考になれば幸いです。
■応用の森 Java上で画像にテキストをスーパーインポーズする方法について
画面から投入された画像に、テキストをスーパーインポーズするサンプルです。
前述の「No001:Javaによる画像の縮小処理」とほぼ同じですが
テキスト合成メソッド textSuperImpose() が追加されています。
JPEG画像とテキストをサーバーに送信し、テキストを画像にスーパーインポーズするサンプル
ファイルサイズが大きいjpeg形式画像ファイルを指定してください。 
注)送信されたデータは、垂れ流しでサーバー側には一切保存していませんのでご安心を。
スーパーインポーズするキャプションを指定してください。 
 
画像表示エリア

 

送信された画像にテキストのキャプションがビットマップとして
スーパーインポーズ合成されてラウザに表示されるはずです。
以下、サンプルソースの解説です。

view(WebContent/imgsuperimpose.html)

フォームを送信すると、結果は同じ画面が表示され、サーバーから画像合成されて返却された
画像データ(Base64エンコード形式)を <img>タグにセットしています。

 

コントローラ(src/main/jp/dip/arimodoki/cntl/ImgSuperImpose.java)

 

ブラウザから投入された画像データは、マッピングハンドラsuperimpose()に渡り、
compress()メソッドで画像圧縮を行った後、textSuperImpose()メソッドでテキストをスーパーインポーズ合成し
Base64エンコードしてview(HTML)に返却します。

まじめにやる場合は、compress()メソッドやtextSuperImpose()メソッドは別の汎用クラスに追い出した方がいいと思いますが、
ここでは手抜きして、コントローラクラスのprivateメソッドで実装しています。