eXorithm – Execute Algorithm: View / Run Algorithm get_average_color

Logo Beta

function get_average_color ($image

{

  $y = imagesy$image);

  $x = imagesx$image);

  

  $r_total = 0;

  $g_total = 0;

  $b_total = 0;

  

  $tc = imageistruecolor$image);

  

  for ($ii=0;$ii$y$ii++) {

    for ($jj=0;$jj$x$jj++) {

      $rgb = imagecolorat$image$jj$ii);

      if ($tc) {

        $r_total += ($rgb >> 16) & 0xFF;

        $g_total += ($rgb >> 8) & 0xFF;

        $b_total += $rgb & 0xFF;

        $count++;

      } else {

        $rgb = imagecolorsforindex$image$rgb);

        if ($rgb'alpha']==0) {

          $r_total += $rgb'red'];

          $g_total += $rgb'green'];

          $b_total += $rgb'blue'];

          $count++;

        }

      }

    }

  }

  

  $r = dechexround$r_total/($count)));

  $g = dechexround$g_total/($count)));

  $b = dechexround$b_total/($count)));

  

  if (strlen$r)==1) $r = '0'$r

  if (strlen$g)==1) $g = '0'$g

  if (strlen$b)==1) $b = '0'$b

  

  return $r$g$b