PHP:获得像素的灰度级(图像)

时间:2017-06-14 22:42:26

标签: php image grayscale

我希望在PHP中获得给定图像的确切“灰度级”。我无法理解为什么我总是使用[0, 0, 0]imagecolorsforindex作为RGB数组。这是我的代码:

// load
$img = imagecreatefromjpeg("images/white.jpeg");

// to grayscale
imagefilter($img, IMG_FILTER_GRAYSCALE);

// just 1 pixel that describe the whole image
$grayLevel = resize_image($img, 1, 1);
$gray = imagecolorat($grayLevel, 1, 1);
$readble = imagecolorsforindex($grayLevel, $gray);

print_r($readble);

我首先加载我的图像(它是一个完全白色的图像,所以根据this每个像素应该是[255,255,255]),然后以灰度变换它。我将图像的大小调整为仅描述整个图像的一个像素,然后我得到了RGB阵列。数组为[0, 0, 0]

我无法理解为什么我总是得到[0, 0, 0]灰度图像和颜色。它的1像素技术错了?

非常感谢

PS:resize_image有效,我已对其进行了测试,无论如何这是代码:https://pastebin.com/HNDzKq5E

1 个答案:

答案 0 :(得分:1)

图像中的第一个像素存在于(0,0),而不是(1,1)。尝试更改

$gray = imagecolorat($grayLevel, 1, 1);

$gray = imagecolorat($grayLevel, 0, 0);