画像ギャラリのサーバー側処理補足
MyHome Portal Ver.3.17で、JavaScriptライブラリ「Merging Image Boxes with jQuery」を利用した画像ギャラリー「ギャラリ5」を追加しました。
http://ok2nd.blog87.fc2.com/blog-entry-255.html
この機能追加について補足事項を書いておきます。
「Merging Image Boxes」は、1枚の画像をクローズアップした時の画像サイズが固定値前提になっています。サムネイル画像の6倍、例えばサムネイルの横幅が125pxの場合750pxでないときれいに表示できません。
そのため、MyHome Portalのギャラリ5では、サーバー側で、それにあわせて画像をリサイズしています。(縦長画像の考慮はしていません。動画のサムネイル静止画も未対応です。)
画像のリサイズには、IrfanViewを使用しています。リサイズ画像はテンポラリとして作成していますが、IrfanViewがリサイズ先のファイル名の拡張子がjpgでないと動作しないため、tempnam()を使えません。そこで、定義ファイルでERROR_LOG_DIRで指定されたディレクトリに一時的にファイルを作成しています。
3.17に不具合があったため、以下の処理は3.18で使わない仕様に変更しました。(2/7追記)
ただ、このファイルが
fpassthru($fp);
@fclose($fp);
をした後でもunlink()で消えないケースが発生するため、確実に消すため次の処理を入れています。
if ($temp_file) {
while (!unlink($temp_file)){
usleep(10000);
};
}