元画像

drupal5 imagecache 1.6

imagecacheモジュールは、Drupalのサムネイル画像作成用モジュール。

添付した画像ファイルを本文内に挿入する inlineモジュールや、cckでノードに画像フィールドを追加するモジュールからも利用される。もちろん theme関数を利用して直接利用する事も可能。

リサイズ例

元画像この 110x200サイズの画像をリサイズした場合を例として次に示す。各例は全て 100x100サイズに変更する。オフセットの設定が必要な場合は中央(center)を指定する。

拡大縮小(内側)

拡大縮小(内側)リサイズ方法(action)に「拡大縮小」を指定し、「拡大縮小の場合」オプションに「内側の寸法」を指定すると、指定したサイズに全てが収まる大きさにリサイズされる。従って、指定したサイズより片辺が小さくなる場合がある。

拡大縮小(外側)

拡大縮小(外側)後に切り取りリサイズ方法(action)に「拡大縮小」を指定し、「拡大縮小の場合」オプションに「外側の寸法」指定すると、一方の辺のみが指定したサイズに収まる大きさにリサイズされる。従って、指定したサイズより片辺が大きくなる場合がある。

サイズ変更

拡大縮小(外側)リサイズ方法(action)に「サイズ変更」を指定すると、縦横比(アスペクト比)を無視して、指定サイズに縮小拡大される。

切り取り

サイズ変更リサイズ方法(action)に「切り取り」を指定すると、元画像が指定サイズより大きい場合は、指定サイズに抜きとたった部分をサムネイルとする。

拡大縮小(外側)後に切り取り

切り取り「外側の寸法を優先した拡大縮小をした後に指定サイズに切り取る」など、一つのリサイズパターンに、複数のリサイズ処理をバッチ指定する事も可能である。

以上、imagecacheのリサイズ例である。サイズの設定、リサイズ方法などのリサイズパターンは、設定画面から、名前を付けて複数のパターンを定義しておく事が可能であり、登録したリサイズパターンは、theme関数から名前で呼び出す事が可能である。

バグ

warning: getimagesize(imagecache/thumbnail/files/images/foo.jpg) [function.getimagesize]: failed to open stream: No such file or directory in .../sites/all/modules/imagecache/imagecache.module on line 208.

imagecache 1.6には、新しい画像をリサイズする際などに、やたらワーニングが出るとか、Crop(切り取り)処理が正常に行われないとかのバグがある。その修正パッチは以下のページから入手可能

このパッチは、1.19.2.36用と明記されており、imagecache 1.5用らしいのだが、何故か imagecache 1.7の 1.19.2.37にも適用されていない。Drupalによくある話…。

その他の問題点

リサイズ後の画像サイズ(width/height)が保存されないので、HTML内の WIDTH属性を出力できない。(出力時に画像ファイルからサイズを抽出する事はサーバーの負荷の面で非現実的である。)

この記事のトラックバックURL:

http://diary.haz.jp/trackback/94