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