2011-02-10 17 views
4

私たちは、PHPでイメージのサイズ変更をかなり標準的に実装しています。しかし、いくつかの画像は緑がかった色合いで出てきます。サイズ変更された画像が緑色に変わりますか?何か案は?

がここにオリジナルです: http://www.capitallightingfixture.com/product_images/3979WG-514.jpg

ここにリサイズします: http://www.capitallightingfixture.com/product_images/5-3979WG-514.jpg

私は、元のjpgのカラープロファイルをチェックしました、それはRGBです。

は、ここに私のPHPのリサイズ部分です:

if (function_exists("gd_info")){ 
     $dst_img = imagecreatetruecolor($thumb_width,$thumb_height);  
     }else{ 
     $dst_img = imagecreate($thumb_width,$thumb_height);  
     } 

    if(@imagecopyresampled($dst_img,$src_img,0,0,0,0,$thumb_width,$thumb_height,$origw,$origh)){ 
     }else{ 
     imagecopyresized($dst_img,$src_img,0,0,0,0,$thumb_width,$thumb_height,$origw,$origh); 
     }  
    imagedestroy($src_img); 

     imagejpeg($dst_img, '', 85); 
+0

画像のビット深度はどのくらいですか? –

+0

カラープロファイルの問題の可能性が最も高いと言えます。元の画像にプロファイルが埋め込まれているかどうかをPhotoshopで確認できますか? –

+0

@ Mark Robinson 8ビットの奥行き – jerebear

答えて

4

RGBのカラープロファイルではありません、それは色スペースです。有効なカラープロファイルは、たとえばsRGBとAdobe RGBです。リンクしたイメージをチェックすると、オリジナルにはsRGB IEC61966-2.1カラープロファイルが埋め込まれていて、サイズ変更にはカラープロファイルがないことがわかります。そのため、プロファイルに基づいて異なる表示が行われます。

残念ながら、私はPHPでGDイメージ機能がカラープロファイルに注意を払っているとは思いません。 Photoshopを使用して一般的なsRGBプロファイルに変換したり、ImageMagickを使用してサイズ変更を行うことができます(カラープロファイルを認識しています)。

+0

いいえ、+1、それを修正する方法は?元のものが元のものであると仮定していると仮定します。彼はPhotoshopでそれを保存する必要がありますか? –

+0

ビット情報を追加しました。 :) – coreyward

+0

sRGBは、プロファイルなしで入手できるものに非常に近いものになるように設計されているため、このような大きな違いがどうなるかわかりません。 –

関連する問題