PukiWiki

背景

サムネール出力のために作りました。
デジカメ写真をattachrefやaddlineでガンガン貼り付けして、知人に公開していたんですが、refの縮小表示だと、でっかいファイルをそのまま読み込むため、重たいっっ。デジカメの写真、1枚数MByteが何十枚もあると....。ってことで、縮小してから出力したい、と。
当然サーバーに負荷がかかります。大勢が閲覧しに来るページだとやばいかも。とはいえ、refで大きなファイルを無駄に送りまくるよりは縮小してから送った方がましかな。CPUの性能次第ですね。

仕様

  • 添付ファイルをリサイズしてjpeg形式で出力します。
    ?plugin=resizeimage&page=ページ名&image=添付ファイル名&w=幅&h=高さ&q=50&k
  • 引数
    • page ページ名(エンコード後)
    • image 添付ファイル名(エンコード後)
    • w(またはwidth) 横幅。デフォルト160
    • h(またはheight) 高さ。デフォルト120
    • q(またはquality) jpeg圧縮度(0(低品質)〜100(高品質))
    • k(またはkeepaspectratioまたはkeepaspect) 値は不要(無意味)。この引数が存在すると、元ファイルのアスペクト比をキープして、指定サイズに収まるようにリサイズ。

インストール

ダウンロード

GDライブラリ有効化

  • php.iniの
    extension=php_gd2.dll
    行がコメントアウトされていたら、コメントアウトをやめて有効にする。

おまけ

  • refのインライン表示からresizeimageを呼び出すようにしたもの。
    • fileref.inc.php
    • かなりいい加減だったのがちょっとまともになりました。defineでresizeimage使用/不使用切り替えできます。(2007-09-23)

使用例

TODO

  • gdライブラリが無い(エラー表示のjpegが生成できない)場合はテキストでエラーを出力(dieさせる)必要がある。

Version history

  • 1.0 2007-07-30
    • 新規作成
  • 1.1 2007-07-30
    • check_readable処理追加
    • テキストをjpegで出力する部分を関数化。
  • 1.11 2007-07-30
    • デフォルトサイズが0になっていたので修正
    • ゴミコード削除。(BMPが使えなくて断念したときのコードが残っていたりした^^;)
    • エラー処理追加
      • サイズ指定が0
      • gd_infoのエラー抑制。
        gdライブラリが無効の場合、gd_infoのエラー抑制をしても、死んでしまう...。
        検証コード
        $gdinfo = @gd_info();
        echo 'test';
        exit;
        このコードでgdライブラリ無効の場合でも、文字列「test」が出力されても良いはずだが...(Windows2000 php5.2.3)
  • 1.12 2007-11-20
    • キャッシュ作成機能追加
      • DATA_HOME . 'thumb/'(RESIZEIMAGE_CACHE_DIRで定義)にキャッシュファイルを作成する。
      • "元のファイル名_幅_高さ_品質"というファイル名にて保存される。
      • キャッシュ作成に失敗すると、以前のバージョン同様毎回生成する。エラー出力をしないので、フォルダ作成を忘れると気付かないかも。ファイル名がOS制限を超えた場合はこれで救われると思う。(未検証)
  • 1.13 2007-11-20
    • 不具合修正
    • キャッシュ使用時に作成していない変数を解放しようとしていた。
  • 1.20 2007-11-21
    • fileresizeimage.inc.php.1.20
    • httpヘッダ出力にContent-Length追加
    • httpヘッダ出力にfilename追加
    • inlineタイプでの仕様追加。
      • 書式 &resizeimage(string file, [int width, [int height, [int quality[, boolean keepaspectratio]]]]);
    • サイズのデフォルト値を''にしておくと、デフォルト=オリジナル画像のサイズ(縦、横それぞれ)となるようにした。
  • 1.21 2007-11-21
    • fileresizeimage.inc.php.1.21
    • httpヘッダのfilenameのバグ修正(元ファイル名のままだった)
    • エラーメッセージ改善


添付ファイル: fileresizeimage.inc.php.122 72件 [詳細] fileresizeimage.inc.php.1.21 1080件 [詳細] fileresizeimage.inc.php.1.20 353件 [詳細] fileresizeimage.inc.php 180件 [詳細] fileresizeimage.inc.php.1.12 75件 [詳細] fileref.inc.php 735件 [詳細] fileresizeimage.inc.php1.11 170件 [詳細] fileresizeimage.inc.php1.1 86件 [詳細] filetest.gif 6313件 [詳細] filetest.png 6140件 [詳細] filetest.jpg 7029件 [詳細] fileresizeimage.inc.php.ver1.0 84件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2007-11-22 (木) 20:51:30 (5080d)