php获取图片颜色值的两种方法
<?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颜色值。
根据用户上传的图片检索出图片的主要颜色值,然后通过颜色搜索相关的图片。

按照网上的方法将图片缩放(或者马赛克)然后遍历每个像素点,然后统计处RGB次数最多的值,这做法效率太低而且取到的RGB值不够精确。
之后才发现使用Imagick的quantizeImage方法能够很方便的取到图片中平均的RGB值。(bbs.it-home.org 脚本学堂) 代码: ?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 "
";
} 登入後複製 输出结果:

|
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
-
2024-12-12 11:03:15
-
2024-12-12 11:01:15
-
2024-12-12 10:59:13
-
2024-12-12 10:58:16
-
2024-12-12 10:57:14
-
2024-12-12 10:56:12
-
2024-12-12 10:55:13
-
2024-12-12 10:54:17
-
2024-12-12 10:53:16
-
2024-12-12 10:51:16
最新問題
-
2025-03-26 19:48:00
-
2025-03-26 19:40:08
-
2025-03-26 12:24:37
-
2025-03-26 12:20:46
-
2025-03-21 13:39:34