CodeIgniter1.7を使用して写真共有コミュニティサイトを開発しました。メンバーによってアップロードされた写真は、CodeIgniterImageManipulationクラスを使用するさまざまな形式で自動的にサイズ変更されます。このクラスはフレームワークに組み込まれており、基本的にはGD、GD2、ImageMagick、NETPBMなどの複数の画像操作ライブラリのラッパーです。私のホストでは、GD2しか使用できないので、ここでこの質問をします。
私の問題に移ります。これが私のサイトのサイズ変更された写真の例です。オリジナルは非常に大きく、幅が3000pxを超えていることに注意してください。
http://www.jungledragon.com/image/195/female_impala_close-up.html
次に、同じ画像を見てください。これもサイズが変更されており、Flickrで少し大きくなっています。
http://www.flickr.com/photos/fledder/3763538865/in/set-72157621744113979
劇的な違いがわかりますか?私はその大きなギャップを埋めようとしています。私が最初にしたことは、画像にシャープフィルターを適用することでした。ここで結果を見ることができます:
まだ完璧ではありませんが、少なくともFlickr画像のシャープネスレベルに近づいています。残りの問題は、彩度が低下したかのように色が洗い流されることです。これはすでに研ぎフィルターの前に起こっているので、GD2にある必要があります。
この問題は私にとって非常に重要ですが、どこを見ればよいのかわかりません。クロマサブサンプリングについて話している.NETスレッドをいくつか見つけましたが、セットアップでその情報をどう処理するかわかりません。セットアップの制約内で機能するソリューションを探しています。
更新:これにより、元のファイルを自分のサイトとFlickrの両方にアップロードしたのとまったく同じになります。
http://www.jungledragon.com/img/DSC07275.jpg
アップデート2:ショックを受けました。いい意味で。ImageMagickをインストールするのに大変な苦労がありましたが、それに切り替えた後(Code Igniter画像操作クラスで使用するライブラリとして「imagemagick」を設定した問題でした)、テスト画像の結果は次のようになります。
ImageMagickのサイズ変更は、意図したとおりに実行されます。色は保存され、シャープネスがあります。はい、ImageMagickのために不要になったため、カスタムシャープニングルーチンを無効にしました。その上、プロセスははるかに高速で、メモリの消費も少なくなります。そして、ここにもう1つの大きな部分があります。それを説明することはできませんが、ユーザー@Alixによって提案された特定のカラープロファイルを使用するようにImageMagickに指示することはまったくありませんでした。これまでの私のテストでは、埋め込みプロファイルの有無にかかわらず、色情報が尊重されているように見えます。出力は、単に入力の小さいバージョンです。ImageMagickは本当に賢いのですか、それとも私は夢を見ていますか?