【问题标题】:How can I get the pixel value of image in PHP?如何在 PHP 中获取图像的像素值?
【发布时间】:2013-03-02 07:45:45
【问题描述】:

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

【问题讨论】:

    标签: php


    【解决方案1】:

    是的,您可以使用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) 该像素处的颜色索引 2) 该像素处的实际颜色。如果你使用 imagecolorsforindex(),你可以确定你得到 RGB 值。
    • @GintareStatkute 字符串和图片路径一样吗?
    【解决方案2】:

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

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

    如果您有文件路径,则使用任何创建函数,例如 imagecreatefromgif()、imagecreatefromjpeg()、imagecreatefrompng()。

    【讨论】:

      猜你喜欢
      • 2023-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-17
      • 2012-02-24
      • 1970-01-01
      • 2017-11-17
      相关资源
      最近更新 更多