PHP에서 이미지의 색상 값을 얻는 두 가지 방법
풀어 주다: 2016-07-25 08:52:59
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-11-29 16:23:53
-
2024-11-26 12:09:36
-
2024-11-26 12:09:32
-
2024-11-21 16:12:31
-
2024-11-20 14:23:08
-
2024-11-19 10:43:00
-
2024-11-13 09:42:17
-
2024-11-13 09:42:16
-
2024-11-11 12:24:02
-
2024-10-22 13:03:13