0

次のRGB値があるとしましょう。

R:129 G:98 B:87

Photoshopによると、その色の彩度は33%です。

PHPとRGB値を使用してそのパーセンテージを計算するにはどうすればよいですか?

4

2 に答える 2

3

PHPのRGBからHSVを参照してください

そのコードから飽和ビットのみを取得し、パーセンテージに変換します。

function saturation($R, $G, $B) {  // 0-255
     $Min = min($R, $G, $B);
     $Max = max($R, $G, $B);
     return $Max == 0 ? 0 : (($Max - $Min) / $Max) * 100;
}

または、上記のリンクにある元のコードを使用することもできます。返されるHSV値は0.0〜1.0であるため、パーセンテージを取得するには、飽和値に100を掛けるだけです。

于 2010-03-05T00:56:26.597 に答える
0

PEAR(PHP拡張機能とアプリケーションリポジトリ)には、 Image_Color2と呼ばれる優れたパッケージがあり、さまざまなカラーモデル間ですばやく変換できます。

include "Image/Color2.php";

$color = new Image_Color2(array(129,98,87));
$hsv = $color->convertTo('hsv');
$hsvArray = $hsv->getArray();

echo "Hue is " . $hsvArray[0] . "\n";
echo "Saturation is: " . $hsvArray[1] . "\n";
echo "Brightness is: " . $hsvArray[2];    
于 2010-03-05T01:00:35.233 に答える