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