280W =終焉の宴=

123456789101112131415161718192021222324252627282930

Profile

Project

サークル活動

PHP - ImageMagick @ Fedora

投稿者:Aki
投稿日時:2008-01-11 - 00:22:27
カテゴリー:プログラミング - トラックバック(No Trackbacks)
いわゆる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を確認。
imagickがあればOK。

=====================================

次に実装方法。
今回は単純に画像の縮小表示。
携帯向けに横幅は200ってことで勝手に決めた。
縦幅を0にすれば自動で決めてくれます。
(すなわちアスペクト比維持)
テストコードは下のアレゲ。

$image = new Imagick("test.jpg");
$image->thumbnailImage(200, 0);

header("Content-type: image/jpeg");
echo $image;

このままじゃまともに使えないし、
GETやPOSTパラメータなどクライアントからのデータを
そのままファイル名に渡すような真似だけはやめましょう。
いろんな攻撃に遭う可能性があります。

そして出力されるのが以下の画像。
縮小テスト

これが元画像
元画像

こんな感じです。
文字入りの画像なんかは、GDより見やすい模様。
ほんとはリサンプリングのアルゴリズム選びたいが、
まだ未対応なのかな?
現状これで満足してるのでOKということです。

それではまた。

Comments

No comments yet

Add Comments

Trackback

トラックバック
このエントリにトラックバックはありません
このトラックバックURLを使ってこの記事にトラックバックを送ることができます。 もしあなたのブログがトラックバック送信に対応していない場合にはこちらのフォームからトラックバックを送信することができます。.