2枚の画像を合成するプラグイン
-
2枚の画像を合成するプラグインを作成したいのですが
どのような方法が簡単でしょうか?新規投稿の画面からアップロードできる画像の枚数を増やせるようにして
投降されたときには合成されているという形にしたいと思います。サクラサーバを使用しているのでGDライブラリはインストールされています。
プラグイン作成自体初めてで恐縮ですが
ご教示いただけましたら幸いです。
よろしくお願いいたします。
-
eiowq87mv23kさん、こんにちは。
プラグインを作るのが初めてであれば、まずはプラグイン作成の基本であるフィルターフックとアクションフックについて良く理解する必要があります。
まずは、下記をよく読んで、簡単なものでよいので、動作するプラグインを作ってみて下さい。
プラグイン API
http://wpdocs.sourceforge.jp/%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3_APIWordPressをカスタマイズするなら覚えておきたいアクションフックとフィルターフック
http://webdesignrecipes.com/wordpress-action-hook-and-filter-hook/WordPress プラグイン作成時のノウハウ – 前編
http://zone.maple4ever.net/blog/archives/440/
および関連する投稿WordBench 東京 勉強会(カスタマイズ基本編)スライド資料・アンケート結果
http://tokyo.wordbench.org/2010/09/25/study-20100923-slides/配布されているプラグインのソースを解析してみるのも勉強になります。
jim912さんご回答ありがとうございます。
ご提示いただきましたサイト一応目を通させていただきました。
が、少し私には難易度が高く理解ができていないと思います。
フィルターフック、アクションフックの部分がよくわかりませんでした。
プラグインにつきましては下記サイトを参考につくり、無事表示させることができました。
http://blog3.logosware.com/archives/744今回2枚の画像を合成するというものを作りたいのですが
難易度的には少しむずかしいでしょうか?eiowq87mv23kさん
フィルターフック、アクションフックの部分がよくわかりませんでした。
プラグインを作るためには、不可欠な知識ですので、フィルターやWordPress独自の関数は勉強されるしかないと思います。
参考にされたサイトのコードに
add_action('wp_footer', 'helloworld');
という部分がありますが、関数
helloworld()
をアクションフック「wp_footer」にフックしない限り、フッターに「— Hello world —」は表示されません。作られようとしているプラグインでも、合成した画像を表示する処理が必要になると思いますが、そのためにはフックは、避けては通れません。
jim912さんが
配布されているプラグインのソースを解析してみるのも勉強になります。
と仰っていますが、その通りかと思います。
今回2枚の画像を合成するというものを作りたいのですが
難易度的には少しむずかしいでしょうか?合成というのは、地形図と地名の入った画像を合わせて地図にするみたいな感じで宜しいですよね?
画像を合成すること自体は、WordPressとは無関係ですので、ここよりもPHP寄りのフォーラムやサイトの方が詳しい情報が得られるかもしれませんが、GDライブラリを使えば、一般的には、そう難しくない内容かと。
多分、検索すれば情報は見つかると思います。
余談ですが、合成というのがもしredcockerさんが仰ってるように、地図の上に文字を載せるというようなものなのであれば、場合によってはHTMLレイヤーだけで済ますことも可能かと思われます。ただしどうしても最終結果が1枚の絵でなければならないというのであれば、この方法は使えませんが…。
redcockerさんご回答ありがとうございます。
>という部分がありますが、関数helloworld()をアクションフック「wp_footer」にフックしな>い限り、フッターに「— Hello world —」は表示されません。
なんとなくは理解できたのですが^^;
もう少し色々なサイトを見て勉強してみます。>合成というのは、地形図と地名の入った画像を合わせて地図にするみたいな感じで宜しいですよね?
今回の合成は重ねるというよりは2枚(複数枚)をタテに並べて
1枚の画像にするということをしたいです。>画像を合成すること自体は、WordPressとは無関係ですので、
>ここよりもPHP寄りのフォーラムやサイトの方が
>詳しい情報が得られるかもしれませんが、GDライブラリを使えば、
>一般的には、そう難しくない内容かと。なるほどやはりGDライブラリを使うのがよさそうですね。
GDライブラリに関してはPHP関連のサイトを探してみます。以下ご質問させていただきたいのですが
wordpressでGDライブラリを使用する場合
例えばGD関数のImagePNG等を使用する場合、
wp-content/plugins/hoge.phpに直接書き込んで
動作するものなのでしょうか?
それとも何かGDを読み込むための記述、設定などが必要になりますでしょうか?
使っているサーバはさくらなので
サーバにGDライブラリはインストールされている状態です。V.J.Catkickさんご回答ありがとうございます。
>場合によってはHTMLレイヤーだけで済ますことも可能かと思われます。
なるほどそういう方法もありかもしれません。
今後使えそうな場面があれば試してみたいですね。今回は色々な理由から画像での出力のほうがよさそうです。
ご回答ありがとうございました。eiowq87mv23kさん
画像の連結ですね。
wordpressでGDライブラリを使用する場合
例えばGD関数のImagePNG等を使用する場合、
wp-content/plugins/hoge.phpに直接書き込んで
動作するものなのでしょうか?
それとも何かGDを読み込むための記述、設定などが必要になりますでしょうか?
使っているサーバはさくらなので
サーバにGDライブラリはインストールされている状態です。インストールされているなら、特に何もしなくともGDは使えると思います。
<?php phpinfo(); ?>
と記述したPHPファイルをアップロードしてアクセスすれば、GDのバージョンなども分かります。
WordPressは、独自の関数やフックといった仕組みを持っていますが、プラグインと言っても要はPHPなので、勿論、プラグインを構成するファイル内で標準の関数やGDの関数を使うことが出来ます。
画像の連結に関しては、GDでも出来ると思いますが、便利なライブラリがあるかもしれませんので探してみてください。
おそらく、アクセスカウンター等が数字の画像を連結して1枚の画像にしていたりすると思いますので、参考になるかと。
redcockerさんご回答ありがとうございます!
>インストールされているなら、特に何もしなくともGDは使えると思います。
>と記述したPHPファイルをアップロードしてアクセスすれば、
>GDのバージョンなども分かります。なるほどそうなんですね~!試してみます。
ちょっと方向性が見えてきましたのでまた調べてみます。ライブラリとアクセスカウンターのサンプルなど探してみます。
また質問させていただくかもしれませんがその際は宜しくお願いいたします。
- トピック「2枚の画像を合成するプラグイン」には新たに返信することはできません。