牛骨文教育服务平台(让学习变的简单)
博文笔记

PHP读取单一图片的rgb值

创建时间:2016-02-26 投稿人: 浏览次数:1005

我们知道用PHP去设置一块画布的颜色很容易,它提供了image系列的函数可以做这个事情,但是有一个图片文件,假设他上面的颜色是单一的,如何读取它的rgb值呢?

尝试如下,但是并不是很准,跟QQ截图的读取值差1

<?php

$i = imagecreatefromjpeg("1.jpg");

$rTotal = 0;
$gTotal = 0;
$bTotal = 0;
$total = 0;

for ($x=0;$x<imagesx($i);$x++) {
  for ($y=0;$y<imagesy($i);$y++) {
    $rgb = imagecolorat($i,$x,$y);
    $r = ($rgb >> 16) & 0xFF;
    $g = ($rgb >> 8) & 0xFF;
    $b = $rgb & 0xFF;
    $rTotal += $r;
    $gTotal += $g;
    $bTotal += $b;
    $total++;
  }
}

$rAverage = round($rTotal/$total);
$gAverage = round($gTotal/$total);
$bAverage = round($bTotal/$total);

echo "r:" . $rAverage . " g:" . $gAverage . " b:" . $bAverage;

?>


阅读更多
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。