いわゆるPECL/imagick
ひっさびさに書きますょ。
PHPとかLinuxとかを扱うので
そんな方は以下からどーぞ
この
www.280w.infoは
実はDocomoやSoftbank携帯からの閲覧に対応してます。
が、使ってるスキンだと画像がでなく、
文字だけなのでちょっと寂しい。
つーわけで画像縮小表示を実装しました。
携帯から見ると横幅200Pixelに縮小された画像を見ることができます。多分。
=====================================
で、ImageMagick。
インストール手順と失敗の道を以下に簡単に説明。
imagickモジュールのインストールです。
[ 1 ] PECLでインストールしよう
#
pecl install imagick
(以下略)
sh: phpize: command not found
ERROR: `phpize\' failed
( ゚д゚)
( ゚д゚ )
[ 2 ] phpizeをインストールしよう
#
yum install php-devel
Installing:
php-devel ... (略)
Is this ok [y/N]:
y
(略)
Complete!
phpizeインストール完了の模様。
[ 3 ] ここでPECLインストールしようと思っても、またエラー。
なぜかわからんが、Wand-configねーよバーローと怒られる。
つーわけで、Wand-configのインストール。
#
yum install ImageMagick-devel
これもy。
Complete!
無駄に他のパッケージインストールされるのが気に食わないけどn
[ 4 ] とりあえず、peclのキャッシュクリア
#
pecl clear-cache
[ 5 ] imagickのインストールをもう一度。
#
pecl install imagick
(略)
install ok: channel://pecl.php.net/imagick-2.0.1
You should add \"extension=imagick.so\" to php.ini
[ 6 ] /etc/php.ini に extension=imagick.so の行を追加
追加場所は適当に上の方のあいてる場所に入れた。
これでインストールは終わり。
適当にphpスクリプトを作成し、
phpinfo() ?>
あたりでphpinfoを確認。
imagickがあればOK。
=====================================
次に実装方法。
今回は単純に画像の縮小表示。
携帯向けに横幅は200ってことで勝手に決めた。
縦幅を0にすれば自動で決めてくれます。
(すなわちアスペクト比維持)
テストコードは下のアレゲ。
$image = new Imagick(\"test.jpg\");
$image->thumbnailImage(200, 0);
header(\"Content-type: image/jpeg\");
echo $image;
このままじゃまともに使えないし、
GETやPOSTパラメータなどクライアントからのデータを
そのままファイル名に渡すような真似だけはやめましょう。
いろんな攻撃に遭う可能性があります。
そして出力されるのが以下の画像。
これが元画像
こんな感じです。
文字入りの画像なんかは、GDより見やすい模様。
ほんとはリサンプリングのアルゴリズム選びたいが、
まだ未対応なのかな?
現状これで満足してるのでOKということです。
それではまた。