【发布时间】:2013-03-02 07:45:45
【问题描述】:
我需要使用 PHP 来读取图像中的每个像素。它用于图形密码项目。当用户选择密码时,他们将选择图像上的某个区域。我试图通过像素值来做到这一点。可以吗??
【问题讨论】:
标签: php
我需要使用 PHP 来读取图像中的每个像素。它用于图形密码项目。当用户选择密码时,他们将选择图像上的某个区域。我试图通过像素值来做到这一点。可以吗??
【问题讨论】:
标签: php
是的,您可以使用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);
}
}
【讨论】:
@GintareStatkute 如果您将图像内容作为字符串,您可以使用:
<?php
$data = 'iVBORw0KGgoAAAANSUhEUgAAABwAAAASCAMAAAB/2U7WAAAABl'
. 'BMVEUAAAD///+l2Z/dAAAASUlEQVR4XqWQUQoAIAxC2/0vXZDr'
. 'EX4IJTRkb7lobNUStXsB0jIXIAMSsQnWlsV+wULF4Avk9fLq2r'
. '8a5HSE35Q3eO2XP1A1wQkZSgETvDtKdQAAAABJRU5ErkJggg==';
$data = base64_decode($data);
$im = imagecreatefromstring($data);
如果您有文件路径,则使用任何创建函数,例如 imagecreatefromgif()、imagecreatefromjpeg()、imagecreatefrompng()。
【讨论】: