Image的RGB颜色平均值

Moe*_*ini 6 php gd image-processing

我想在php中获得Image的RGB颜色的平均值.

通过gd lib我编程

    $x = imagesx($im);
    $y = imagesy($im);
    for ($i = 0;$i < $x;$i++)
        for ($j = 0;$j < $y;$j++){
            $rgb = imagecolorat($im,$i,$j);
            $sum['R'] += ($rgb >> 16) & 0xFF;
            $sum['G'] += ($rgb >> 8) & 0xFF;
            $sum['B'] += $rgb & 0xFF; 
        }
Run Code Online (Sandbox Code Playgroud)

但这并不是我想的好方法.它需要大量的ram来处理.还有另一种方法吗?

Jac*_*iuk 5

我会去重新取样:

$tmp_img = ImageCreateTrueColor(1,1);
ImageCopyResampled($tmp_img,$im,0,0,0,0,1,1,$x,$y); // or ImageCopyResized
$rgb = ImageColorAt($tmp_img,0,0);
Run Code Online (Sandbox Code Playgroud)

  • 什么是默认的重采样算法?我希望它不是最近邻居. (2认同)