###実現したい内容
FuelPHPで画像投稿を行う事ができるサービスを制作しています。
その中で、4000px×3000pxなどの巨大な画像を多く扱うため、
画像のアップロード時に、同時にサムネイル画像を作り活用したいと考えています。
###発生している問題
FuelPHPで
imagemagick
を使用する際に
-define jpeg:size
オプションを使う事のできる方法を探しています。
FuelPHPには予めImage
クラスが用意されているので、それを使用する事にしました。
PHP
1//Controller・実際に圧縮を行っている部分 2Image::load(DOCROOT.'hogehoge') 3 ->resize(320) 4 ->save(DOCROOT.'fugafuga');
いくつかドライバーの選択肢がありますが、サーバのメモリが128MBと少なく、
デフォルトのgd
では圧縮途中にメモリが足りなくなってしまいます。
そこで今回はimagemagick
を使用する事にしました。
Configの内容は以下の通りです。
PHP
1//configフォルダ内のimage.phpに記載した設定内容 2return array( 3 'driver' => 'imagemagick', 4 'bgcolor' => null, 5 'watermark_alpha' => 75, 6 'quality' => 70, 7 'filetype' => null, 8 'imagemagick_dir' => '/usr/bin/', 9 'temp_dir' => APPPATH.'tmp'.DS, 10 'temp_append' => 'fuelimage_', 11 'clear_queue' => true, 12 'persistence' => false, 13 'debug' => false, 14 'presets' => array( 15 ) 16);
imagemagickを使用したお陰か、メモリ不足こそ回避したものの、
それでも1枚のサムネイル画像を作るたびに30秒程の時間がかかってしまいます。
(※4000px×3000pxの画像を200px×150pxに圧縮する場合)
そんな中、imagemagickには、巨大な画像から小さい画像を作るときに真価を発揮する
-define jpeg:size
というオプションがある事を知りました。
しかし、FuelPHPで-define jpeg:size
を使用する方法の見当がつきません。
アプリ側から操作できる、その様なオプションがあるのかどうか、
あるいはコア側で何らかの編集を行わなくてはならないのか、
アドバイス・アイデアなどでも構いませんので、ご回答頂けますと幸いです。
私の力不足で大変ご迷惑をおかけいたしますが、よろしくお願い致します。
###補足情報
FuelPHPのバージョンは1.7.2を使用しています。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/05/25 01:42