您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息

php获取图片颜色值的两种方法

2024/4/19 13:03:32发布6次查看
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 " "; }
输出结果:
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录