如何在PHP中获取图像的像素值?

时间:2013-03-02 07:45:46

标签: php

我需要使用PHP来读取图像中的每个像素。这是图形密码项目。当用户选择密码时,他们将选择图像上的某个区域。而我正试图通过像素值来做到这一点。有可能??

2 个答案:

答案 0 :(得分:21)

是的,您可以使用imagecolorat()获取像素“值”。

$color = imagecolorat($resource, $x, $y);

$resource是您的图片资源,而$x$y是您想要获得颜色的像素的坐标。

您可以像这样迭代所有像素。请注意,根据图像的大小,这可能是一项昂贵的任务。

$width = imagesx($resource);
$height = imagesy($resource);

for($x = 0; $x < $width; $x++) {
    for($y = 0; $y < $height; $y++) {
        // pixel color at (x, y)
        $color = imagecolorat($resource, $x, $y);
    }
}

答案 1 :(得分:0)

@GintareStatkute如果您将图像内容作为字符串,则可以使用:

<?php
$data = 'iVBORw0KGgoAAAANSUhEUgAAABwAAAASCAMAAAB/2U7WAAAABl'
   . 'BMVEUAAAD///+l2Z/dAAAASUlEQVR4XqWQUQoAIAxC2/0vXZDr'
   . 'EX4IJTRkb7lobNUStXsB0jIXIAMSsQnWlsV+wULF4Avk9fLq2r'
   . '8a5HSE35Q3eO2XP1A1wQkZSgETvDtKdQAAAABJRU5ErkJggg==';
$data = base64_decode($data);
$im = imagecreatefromstring($data);

如果你有文件路径,那么使用任何创建函数,例如imagecreatefromgif(),imagecreatefromjpeg(),imagecreatefrompng()。