PHP读取单一图片的rgb值

本文探讨了使用PHP从单一颜色图片中精确读取RGB值的方法,通过循环遍历像素并计算平均值来提高准确性,与常见的截图工具进行对比分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们知道用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;

?>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值