【至急・重要】ウィルスチェックのお願い

Change Style


WP plugin: 画像アップロードオプション+透かし署名 - Flexible Upload

私のしたかったことを二つほど実現してくれそうなプラグインが、orioa さんで紹介されていました。わくわくしながらトラーイ。

Flexible Upload
機能概要画像アップロード時の各種オプション(画像リサイズ、サムネイル作成有無・サイズ指定)を追加。画像への透かし署名1 挿入、Lightbox との連携も可能。
バージョン1.1
作者(web)Antoine Choppin さま
配布元Ma Tasse de Thé » Flexible Upload
ドキュメント
動作見本

こちらの写真はこれを使ったものかも?署名付き

「ページ」対応○ (たぶん。アップロードオプションは出たので。)

透かし署名機能を使うには ImageMagick の composite が必要

適用したWPWordPress ME 2.0.4 [UTF-8]

この記事は書き途中です。後で追加・訂正等が入ります。

導入手順

本家版 WP に入れる場合
  1. 配布元よりダウンロード。
  2. 解凍した flexible-upload フォルダごと wp-content/plugins/ ディレクトリへアップロード。
  3. (オプション)透かし署名
    • 画像に署名を入れたい場合は、flexible-upload/signature.gif を自分の画像に差し替える。
    • この機能が不要なら、flexible-upload/signature.gif を削除。
  4. 管理パネルにて有効化。
ME 2.0.4 に入れる場合の追加作業

ME の場合、上記だけでは何も起こらない。
プラグイン中に WP バージョンによる振り分け処理がある。ME はバージョン番号に「ME」という文字が入っていて、処理対象外になってしまうのだ。(・;)

そこで、次のように小細工。

flexible-upload/flexible-upload.php 73行目から、次のコードがあるので、

global $wp_version;
$ver = (float)$wp_version;
$fup_rel_dir = 'wp-content/plugins/flexible-upload/';

if ( ($ver >= 2.0) && ($ver < 2.1) ) {
    // When called in the plugin context, define the filter to use this
    // script, instead of the existing inline-uploading.php script
    【中略: WP 2.0.x 用処理】
}
else if ($ver >= 2.1) {
    require_once(ABSPATH.$fup_rel_dir.'flexible-upload-wp21.php');
}
  • $wp_versionwp-includes/version.php で定義されている。ME 2.0.4 の場合は、’ME2.0.4‘。

変更 2007.2.16: 初回カスタマイズ2 があまりにも手抜きだったので、コード変更。

74行目(float してるとこ)を、強調部分の2行に差し替えるのみ。
str_replaceME を消してから float(浮動小数点数)に変換するようにした。

global $wp_version;
// $ver = (float)$wp_version;
$ver = str_replace("ME", "", $wp_version);
$ver = (float)$ver;
$fup_rel_dir = 'wp-content/plugins/flexible-upload/';

if ( ($ver >= 2.0) && ($ver < 2.1) ) {
    // When called in the plugin context, define the filter to use this
    // script, instead of the existing inline-uploading.php script
    【中略: WP 2.0.x 用処理】
}
else if ($ver >= 2.1) {
    require_once(ABSPATH.$fup_rel_dir.'flexible-upload-wp21.php');
}

動いたけど、コーディングとしてこれでいいのかは分からない。。(^-^;

オプション設定

flexible-upload/flexible-upload.php 66行目から。日本語コメントはぼの。

//////////////////////////////////////////////////////////////////////////////
// Plugin configuration
//////////////////////////////////////////////////////////////////////////////

define('FUP_DEFAULT_LARGE_MAX', 640); // 画像リサイズ Normal 選択時の値
define('FUP_DEFAULT_THUMB_MAX', 200); // サムネイルサイズ Small の値
define('FUP_WATERMARK_PIC', 'wp-content/plugins/flexible-upload/signature.gif'); // 透かし画像名・パス
define('FUP_COMPOSITE_PATH', '/usr/bin/composite'); // ImageMagick の composite へのパス
define('FUP_USE_LIGHTBOX', true); // Lightbox2 用に rel="lightbox" を入れる?
define('FUP_USE_ALIGNMENT', true); // 記事での画像配置指定(左寄せ・右寄せ・中央)をするか?

使い方

  • 有効化すると、記事投稿・ページ作成画面のファイルアップロード窓にオプション選択部が現れる。
  • 本文への画像挿入画面のオプションにも「Align left」が追加される。クリックで →「Align right」→「Align center」→ と切り替わる。

テスト:

  • Plugin configuration はいじらず。
  • 元画像は 200×200px の JPEG。
  • アップロード時に
    • タイトル: タイトル
    • 概要: 概要
    • Resize image? → Custom size : 150px (largest side)
    • Create a thumbnail? → Custom size : 100px (largest side)
  • 記事への挿入時に
    • サムネイルを使用
    • 画像へリンク
    • Align right
  • 結果
    • オリジナル画像(サムネイルじゃない方)も 150×150px に縮小された。
    • 透かし処理は失敗(後述)。
    • 「概要」欄に記入したものがキャプションとして表示される。(下記挿入コード参照)
タイトル
概要
  • 記事に挿入されたコード:

    <div class="imageframe" style="width:100px; float:right;"><a class="imagelink" href="http://bono.s206.xrea.com/wp/wp-content/uploads/oge02042625.jpg" rel="lightbox" title="タイトル"><img id="image343" src="http://bono.s206.xrea.com/wp/wp-content/uploads/oge02042625.thumbnail.jpg" alt="タイトル" height="100" width="100" /></a><div class="imagecaption">概要</div></div>
    

透かし機能

まだ使えてない。。

サムネイルサイズオプションとこれが使いたかったのにな。。。くすん。(;_;) → できた。次節参照 :-)

これを使うには、ImageMagick の ‘composite’ utility が必要とのこと。

そうすると、考えられそうなのはここらへん:

  • OK s201 で ImageMagick の composite が使えない? → 使える
  • コレ composite のパスが違う? /usr/local/php/bin/composite
  • OK セーフモードだとだめ?(ここだけ CGI モードにすればいける?) → セーフモードでも OK
  • OK 重ねる画像の形式が違ってもいい?(アップするのが jpeg、署名が gif ) → これはよさげ
  • function fup_transform_image() の中の if 文の条件のどれかで引っかかってる?
    • OK アップロード時にリサイズを選択してる?
    • OK FUP_WATERMARK_PIC の値が入ってる?
    • OK $watermark のファイルが存在する?
    • コレ FUP_COMPOSITE_PATH のファイルが存在する? → パスは合ってても、file_exists() があるとダメ。 :-(
    • OK 署名画像の縦・横サイズ両方が、アップ画像(リサイズ後)より小さい?
  • OK -geometry オプションがだめとか? → 動いた。
できた!できたよー! :-)

2007.3.2 追記:

  • サポ板に ImageMagick のパスは載っていたが、それプラス composite では透かしが入らず。
  • アップロードスクリプトを CGI版で動かそうとすると、アップロードフレームが白いままでいつまで経っても表示されない。
  • XREA へ問い合わせ、composite のパスとモジュール版PHP(セーフモード)でも動くことを教えてもらう。3
  • パスを合わせてもだめだったので、考えられそうなこと(前節)を試したところ、次の状態で動いた

    1. flexible-upload.php 67行目 composite のパス修正

      define('FUP_COMPOSITE_PATH', '/usr/local/php/bin/composite');
      
    2. 同 122行目付近4 && file_exists(FUP_COMPOSITE_PATH) をコメントアウト。

      $watermark = ABSPATH.FUP_WATERMARK_PIC;
      if (FUP_WATERMARK_PIC != '' && file_exists($watermark) /*&&
          file_exists(FUP_COMPOSITE_PATH)*/) {
      
    3. アップロード時に、「Resize image?」は No thanks 以外を選ぶ。
      リサイズしないときは透かし処理もスキップされるため。

テスト:

オジェの写真(400×320px)+署名画像(39×31px)+(リサイズ:300px, サムネイル:100px) = テスト2(リサイズ後 300×240px)

このときの$wat_cmd の値:
/usr/local/php/bin/composite -geometry +261+209 $watermark5 $file6 $file.tmp7

このコマンドで、リサイズ済み画像の左上から +261+209 の位置から署名画像を重ねる処理をしている。この座標は、右下端に署名が付くように、画像サイズから逆算されている。

XREA 向け補足 new

2007.3.7 追記:

  • ImageMagick の composite : 全サーバ共通とのことです。

    /usr/local/php/bin/composite (PHP・CGIから)
    /usr/local/bin/composite (CGIから)

    コマンド自体は、モジュール版とCGI版ともに使用可能です。
    ファイル書き込み・読み込みは、お呼び出し元のディレクトリ内で行ってください。

  • file_exists(FUP_COMPOSITE_PATH) をコメントアウトする理由 :

    • XREA のモジュール版PHP はセーフモードで、composite が safe_mode_include_dir 下にないためなので、file_exists で false が返る。でも、使うことはできる。false が返るのと safe_mode_include_dir の関係は不明。。
    • 参考: PHPマニュアル » file_exists

      この関数は セーフモード の制限のためファイルにアクセスできない場合 FALSE を返します。 しかし safe_mode_include_dir で指定されたディレクトリに存在する場合は included することができます。

    • safe_mode_include_dir /usr/local/lib/php8

    • PHPマニュアルの「例 596. あるファイルが存在するかどうか調べる」を実行したところ、次のメッセージが出た。

      Warning: file_exists() [function.file-exists]: open_basedir restriction in effect. File(/usr/local/php/bin/composite) is not within the allowed path(s): (.:/virtual:/tmp:/usr/local/lib/php) in /***/***/public_html/***.php on line 19
      The file /usr/local/php/bin/composite does not exist
      

未解決・試してみたいこと update

2007.3.2, 3.7 追記:

  • composite のパスは合っていて、処理もできるのに、file_exists() で引っかかるのはなぜ? → 解決。前節に追記。
  • 生成コード(タグ)の修正。<div> の直下はブロック要素がくるべきなので。どうするのがいいか考えてみる。
  • 透かし署名を、リサイズしないときも入れられるようにしてみる。if 文を出せば OK なはず。
  • アップロード時に、透かしを入れる/入れないと選べるといいかも。
  • composite のオプションで、重ねる画像の透け具合を調節できるか調べる。
  1. `a watermark signature` をこう訳したけど、実際には透けない。composite のオプションをいじれば変えられるかも。[back]
  2. 初代手抜き版は:
    とりあえず 77行目の if 文(上の強調部分)をこんな感じに。 (注)手抜きすぎです。。

    if ( ($ver >= 2.0) && ($ver < 2.1) || $wp_version == 'ME2.0.4' ) {

    [back]

  3. ありがとうございました。 :-) [back]
  4. ME用修正を入れているので少しずれてます。[back]
  5. 署名画像パス[back]
  6. リサイズ済み画像[back]
  7. 合成後画像[back]
  8. phpinfo() で確認。[back]

YOU、これも読んじゃないなYO!

  • No Related Posts

6 Responses to “WP plugin: 画像アップロードオプション+透かし署名 - Flexible Upload”

  1. Rif.2nd says:

    プラグインも温めの燗がいい…

    WPをはじめてから、画像挿入系のプラグインはありとあらゆるものを試してみて、その中でたどり着いたのが一番最初に取り付けた「IImage Browser 日本語版」でした (more…)

  2. Antoine says:

    こんにちは、Flexible Uploadプラグインを作ったAntoine (アントワン)です。
    Flexible Uploadは僕の最初のプラグインで、まだまだ改善の余地がいっぱいあると思います。
    それにかかわらず、興味を示してくれて本当にすみません。
    これからもアップデートしていくつもりですので、リクエスト等があれば、プラグインページへコメントをどうぞ(日本語でも結構です)。
    ひとまず、Wordpress MEのバージョンをちゃんとサポートすることですね。(すっかり忘れていました、すみません。)
    それでは。

  3. ぼの says:

    Antoineさん、こんにちは。このページを書いた ぼの と申します。
    書き込みありがとうございますー。(^-^)

    Flexible Upload はとてもいいプラグインですね。
    以前からサムネイルサイズを変更したかったのと、watermark は他のスクリプトを自分で組み込もうかと思っていたところだったので、このプラグインで両方とも簡単に出来るようになって、本当にうれしいです。 :-)
    WordPress ME までサポートしてもらえたら、さらにうれしいです。

    これからいろいろ試してみて、プラグインに取り込んでもらえたらなあということ等があれば、リクエストさせていただきますね。(お言葉に甘えて日本語で…。(笑))

    今後ともよろしくお願いいたします。 :-)

  4. [...] 新たに、「 Flexible upload 」が良さそうで、カスタムに画像の大きさを変えられるというのは魅力です。 Ref: WP plugin: 画像アップロードオプション+透かし署名 - Flexible Upload それに、ImageMagickを使うと透かしを入れたりできるそうで、これは新しい! ImageMagickをパッと見ただけですが、楽しそう!これが簡単に導入できるようになったら、IImage Browserから乗り換えると思います。 これはもう、ぼのさんに懸かってます。あはは [...]

  5. ぼの says:

    Rikaさん、こんにちはー。(^-^)

    ImageMagickをパッと見ただけですが、楽しそう!これが簡単に導入できるようになったら、IImage Browserから乗り換えると思います。

    読みましたよー。ふふふ( ̄ー ̄) ImageMagick、使えるようになっちゃいました。
    ささ、お嬢様、乗り換えのご準備を。(笑)

    $wat_cmd = のとこのパラメータをいじると、透かしの入れ方も変えられるので(-geometry 以外もオッケー)、遊んでみてくださいー。 :-)

  6. [...] WP plugin: 画像アップロードオプション+透かし署名 - Flexible Upload [...]

コメントをどうぞ