ホームページ  >  記事  >  バックエンド開発  >  PHPで画像のカラー値を取得する2つの方法

PHPで画像のカラー値を取得する2つの方法

PHP中文网
PHP中文网オリジナル
2016-07-25 08:52:592395ブラウズ

PHP が画像のカラー値を取得する 2 つの方法

  1. <?php
    $i=imagecreatefromjpeg("photo3.jpg");//测试图片
    for ($x=0;$x<imagesx($i);$x++) {
    for ($y=0;$y<imagesy($i);$y++) {
    $rgb = imagecolorat($i,$x,$y);
    $r=($rgb >>16) & 0xFF;
    $r=($rgb >>16) & 0xFF;
    $g=($rgb >> & 0xFF;
    $b=$rgb & 0xFF;
    $rTotal += $r;
    $gTotal += $g;
    $bTotal += $b;
    $total++;
    }
    }
    $rAverage = round($rTotal/$total);
    $gAverage = round($gTotal/$total);
    $bAverage = round($bTotal/$total);
    //示例:
    echo $rAverage;
    ?>

例 2、PHP は画像のメイン RGB カラー値を取得します。 ユーザーがアップロードした画像に基づいて画像のメインカラー値を取得し、色別に関連画像を検索します。


PHPで画像のカラー値を取得する2つの方法

オンラインの方法に従って画像を拡大縮小 (またはモザイク) し、各ピクセルを走査し、RGB 回数が最も多い値をカウントします。この方法は非効率的であり、得られる RGB 値は正確ではありません。十分。 その後、Imagick の quantizeImage メソッドを使用すると、画像内の平均 RGB 値を簡単に取得できることがわかりました。 (bbs.it-home.org Scripting School)

コード:

?php
$average = new Imagick("xiaocai.jpg");
$average->quantizeImage( 10, Imagick::COLORSPACE_RGB, 0, false, false );
$average->uniqueImageColors();
function GetImagesColor( Imagick $im ){
$colorarr = array();
$it = $im->getPixelIterator();
$it->resetIterator();
while( $row = $it->getNextIteratorRow() ){
foreach ( $row as $pixel ){
$colorarr[] = $pixel->getColor();
}
} // bbs.it-home.org
return $colorarr;
}
$colorarr = GetImagesColor($average);
foreach($colorarr as $val){
echo "
";
}

出力結果:

PHPで画像のカラー値を取得する2つの方法





声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。