如何从图像中获取一组十六进制代码?

How to obtain an array of hexadecimal codes from an image?

我需要将 .bmp 图像转换为 PHP 中的十六进制数组。

我试图为此创建一个函数,但没有成功

function bmp_to_hex($filename) {   
    $bmp = file_get_contents($filename);   
    $output = '';   
    for($i=0; $i < strlen($bmp); $i++) {     
        $output .= dechex(ord($test{$i}));   
    }   
    return $output; 
}

PHP 中有这方面的功能吗?如果没有,我该怎么办?

提前致谢。

它没有 ready-made 功能。您可以执行以下操作:

function bmp_to_hex($filename) {   
  $bmpStr = file_get_contents($filename);   
  $hexStr = bin2hex($bmpStr);
  $hexArray = str_split($hexStr,2);
  return $hexArray;
}

$bmpStr 是一个类似于“BMF>(..”的字符串。 $hexStr 是一个类似于“424d460000 ..”的字符串,具有 2 个字符的值。 然后使用 str_split 创建一个数组。数组然后像这样开始:{[0] => string (2) "42" [1] => string (2) "4d".

注意:位图可能会变得非常大。 $hexStr 变得两倍大。然后这些数组需要非常大量的内存。