phpのGDライブラリまとめ

サーバサイドで画像のリサイズを行いたい事はよく有ります。
例えば、アップロードする画像のサムネイルなど。

今回は、phpのGDライブラリをまとめます。

サムネイルの作成

http://sandman.s6.xrea.com/nucleus/item-60.html

ImageCreateTrueColor関数を利用した方が綺麗な画像になります。
ImageCopyResampled関数を利用した方が綺麗な画像になります。

jpeg, gif, png で処理を分ける必要が有るのが面倒。

画像にアンシャープをかける

特に画像を拡大なんかしちゃうと、かなり汚くなります。
アンシャープをかける処理は必須かも。

http://ameblo.jp/linking/entry-10697975057.html
めっちゃ参考になりました。

imageconvolution関数を使います。
http://jp2.php.net/function.imageconvolution

おまけ 画像をDLしてサーバ内に格納

http://codaholic.org/?p=341
参考になりました〜。

追記 png画像の透過処理

http://mediumexposure.com/smart-image-resizing-while-preserving-transparency-php-and-gd-library/
このライブラリを使えばOK

Facebook ウォールにあるリンク機能のサムネイル画像考察

FacebookNaverまとめなど、URLをシェアするために、
うまくサムネイル画像を使ってる。

OGPで画像指定あるものはいいけど、
それ以外の画像指定無しの扱いがやっかい。

いくつかのサイトURLをFacebookのウォールに投稿する
テストをしてみたけど、ページ内に大量に画像が貼られているのは、
画像を取り出してくれない仕組みになっている様子。

例えば

1.zozo OGP対応
Facebook内で綺麗に表示される。


2.楽天 OGP非対応だが、画像が少ない(ページによるが)
例)http://item.rakuten.co.jp/fuzzys-shop/h-7042-n?s-id=top_normal_browsehist
「img src」でソース検索すると、13件マッチ。
Facebook内でサムネイルが13件選べる。
※偶然数字が一致してますが、検索で出た画像と一部違うので、
ほかのロジックも入っていると思います。


3.ニッセン OGP比対応、画像が多い
例)http://www.nissen.co.jp/sho_item/regular/1810/1810_00401.asp?cat=cate001&bu=123456&book=1843&anken=SL11FA001_001
「img src」でソース検索すると、57件マッチ。
Facebook内でサムネイルが表示できない。

まとめ

以上のように、imgタグの乱立により形を保っている様なサイトでは適切にシェアされない。

imgタグを減らし、cssによる指定を的確に行う事で、
機械的にも見やすいソースとなる = シェアされやすくなる。


新しくサイト作るときは、なるべく重要な画像にだけ、
imgタグを使うようにしたいです。


OGPに対応すればいいだけの話では有りますが。

2011.8.28 追記

再度調べてみると、画像の枚数ではなく、img内のsrcパスの違いによるのかも。
相対パスで記載されていると、facebook上で読み取らないみたいですね。

フェイスブックやミクシィ等で使われているOGP(Open Graph Protocol)って?どうやって取得するの?

OGPに関する本家のサイトこれ
http://ogp.me/
 ↓
英語なので、ブログを探ってみました。

■OGPって何?

フェイスブックミクシィ、グリーで使われている OGP (Open Graph Protocol) とは何か
http://d.hatena.ne.jp/amachang/20110117/1295233078

この方のブログが1番分かりやすかったです。

要は、ひとではなく機械にこのページ内に何が書かれているのかの
サマリーを理解させるための仕様です。

画像やタイトルなど、SNSでページをシェアするために良く使われています。
例)フェイスブックのウォール上のリンクなど。


■OGPを取得するには?
metaタグを単純に取り込む方法は無いんだろうか?

追記

結局、get_meta_tagsはOGPに使えなかったので、


preg_match('//', $source, $matches);
正規表現によるデータの取得をするしかなかった。
まあ、出来たからいいか。

オズボーンのチェックリスト

1.転用
 他に使い道はないか?
2.応用
 似たものは?何かのまねはできないか?
3.変更
 意味、色、働き、音、匂い、様式、型を変えられないか
4.拡大
 より大きく、強く、高く、長く、厚く、できないか?
 時間や頻度を変えられないか?
5.縮小
 より小さく、軽く、弱く、短くできないか?
 省略や分割できないか?何か減らす事ができないか?
6.代用
7.再利用
8.逆転
9.結合