ブックマークにスクリーンショットを追加してみました。
- August 26th, 2011
この度、当サイトのブックマークにスクリーンショットを追加してみました。
スクリーンショットの画像を自動で生成しようとしたけど、なかなか難しいという事が分かったので、こちらのサイト「ウェブサイトのスクリーンショットを自動生成 - デザインスタジオウェブログ - WEB関連 - ウェッジ」に掲載されてある、自動生成をありがたく使わせて頂きました。
ただし、画像の枚数が増えると読込時間が長くなるし、ウェッジさんのサーバーにも負荷が掛かりそう...。ということで、ひと手間加える事にしたので、それをメモしておきます。
ひと手間
PHPでスクリーンショット画像を読み込んで、自サーバーにコピーする。
まずは、スクリーンショット画像の画像リソースを取得する。
<?php $ss_url = 'http://www.yahoo.co.jp/'; // スクリーンショット先URL $ss_path = 'http://www.j-wedg.co.jp/img/?url='. $ss_url; // スクリーンショットのパス // 画像リソースを取得 $ss = imageCreateFromPNG($ss_path); // PNG形式 ?>
画像リソースを元に新しい画像を作成する
imageCreateTrueColor()で生成した画像は、初期の背景色が黒色なので、imageFill()で白色の背景色に変更しています。
<?php $w = 200; $h = 150; // 画像サイズ $copy = imageCreateTrueColor($w, $h); // コピー画像を生成 $color_white = imageColorAllocate($out, 255, 255, 255); // 色データを作成 imageFill($copy, 0, 0, $color_white); // 背景色を変更 // 画像のコピー imageCopyResampled( $copy, // コピー先 $ss, // コピー元 0,0,0,0, // 座標 $w,$h,imageSx($ss),imageSy($ss) // サイズ ); ?>
コピーした画像を保存する。
保存先に指定するディレクトリ(/ss)のパーミッションを「0744」または「0777」に変更しておく。
<?php $dir = '/images/ss/'; // 保存先のディレクトリ $filename = date('YmdHis'). '.png'; // ファイル名 $path = $_SERVER['DOCUMENT_ROOT']. $dir. $filename; // パス // PNG画像を保存 imagePNG($copy, $path); ?>
- August 26th, 2011