ImageMagick を使ってサムネイル画像を作成する方法
公開日:
:
最終更新日:2014/01/26
ImageMagick ImageMagick, Java
またまた ImageMagick ネタです。今回はサムネイル画像を作成する方法を調べてみました。
ImageMagick ネタが続いてますんでちょっとリンク貼っておきます。
サムネイル画像を作成するコマンド
ImageMagick の convert コマンドに “-thumbnail” オプションを付けて実行するとサムネイル画像を作成することができます。次のリンクと引用は、本家サイトにある “-thumbnail” オプションについてのものです。
-thumbnail geometry
Create a thumbnail of the image.
This is similar to -resize, except it is optimized for speed and any image profile, other than a color profile, is removed to reduce the thumbnail size. To strip the color profiles as well, add -strip just before of after this option.
やりたかったのは単純に縦横の大きさを縮小した画像を作成するというものだったので、実行するコマンドは例は次のようになります。
$ convert -thumbnail 200x150 in_file out_file
- -thumbnail 200×150 → 作成するサムネイル画像の大きさ(縦x横)を指定する
- 上記の例だと、横200px・縦150pxの大きさになる
- in_file → サムネイル画像の元画像ファイル
- out_file → 作成されるサムネイル画像ファイル
サムネイル画像を作成すると Exif も削除される
上記の引用にもありますが、”-thumbnail” オプションを実行すると “-strip” オプションも実行されます。”-strip” オプションは Exif を削除するためのオプションなので、作成されるサムネイル画像は Exif が削除されたものになります。リサイズしてから Exif を削除するなんてことをしなくてもいいので非常に気が利いてます。
Java から ImageMagick を使ってサムネイル画像を作成する
さて、今回も Java から ImageMagick を使ってサムネイル画像を作成するように実装してみました。
ソースコードはこんな感じです。
/** * サムネイル画像を作成する。 * * @param commandPath * convert コマンドの絶対パス。 * @param src * 生成元のファイル。Exif を削除したい画像ファイル * @param dest * 生成先のファイル。このファイルにサムネイル画像を作成する * @param size * サムネイルサイズ。[0-9]{1,}x[0-9]{1,} で指定する * @throws IOException * commandPath に指定されているパスが convert コマンドではなかった場合 * @throws InterruptedException * ImageMagick の操作に失敗した場合 */ public static void createThumbnail(String commandPath, File src, File dest, String size) throws IOException, InterruptedException { if (log.isDebugEnabled()) { log.debug(String.format( "commandPath:%s, srcPath:%s, destPath:%s, size:%s", commandPath, src, dest, size)); } ProcessBuilder builder = new ProcessBuilder(commandPath, "-thumbnail", size, src.getAbsolutePath(), dest.getAbsolutePath()); Process process = builder.start(); process.waitFor(); }
第一引数の commandPath は ImageMagick の convert コマンドのパスを指定します。パスはプロパティファイルなどに切り出しておきました。
ライブラリ作りました
で、またまた宣伝させてもらいますが、Java から ImageMagick を扱うラッパーライブラリを作成して Github に登録しました。
このライブラリでもサムネイル画像を作成する処理を実装してあります。
- ImageMagick#createThumbnail
使っていただいたところでボク自身には一銭も入りませんが、気が向いたら使っていただけると嬉しいです。
よろしくお願いいたします。
Googleアドセンス用(PC)
関連記事
-
-
ImageMagick を使って画像を結合する方法
前回に引き続き ImageMagick ネタです。今回は画像を結合する方法を調べてみました。
-
-
ImageMagick を使って Exif を取り除く方法
プライベートで撮影した写真をブログとかどこかの Web サービスにアップロードしたり、人に渡すときは
-
-
ImageMagick を使って画像の縦横サイズを縮小する
ガラケーを使った案件で、100KB制限のために画像ファイルを縮小する必要があった。ImageMagi