php教程

超轻量级php框架startmvc

PHP编程获取图片的主色调的方法【基于Imagick扩展】

更新时间:2020-03-22 08:03:44 作者:startmvc
本文实例讲述了PHP编程获取图片的主色调的方法。分享给大家供大家参考,具体如下:代码

本文实例讲述了PHP编程获取图片的主色调的方法。分享给大家供大家参考,具体如下:

代码中用到了php的图片扩展,所以使用之前,需要先安装PHP的Imagick扩展,具体安装如下(window下): windows7下安装php的imagick和imagemagick扩展教程

代码如下:


<?php
$average = new Imagick("./fruit/143511081321676_593.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();
 }
 }
 return $colorarr;
}
$colorarr = GetImagesColor($average);
foreach($colorarr as $val){
 $r += $val['r'];
 $g += $val['g'];
 $b += $val['b'];
 echo "<div style='background-color: rgb({$val['r']},{$val['g']},{$val['b']});width:50px;height:50px;float:left;'></div>";
}
$r = round($r/10);
$g = round($g/10);
$b = round($b/10);
echo "<br><div style='background-color: rgb({$r},{$g},{$b});width:100px;height:100px;float:left;'></div>";
?>

PHP 获取 图片 主色调 Imagick 扩展