2013-11-12 2 views
1

Просто интересно, знал ли кто-нибудь, как преобразовать массив байтов BMP в фактическое изображение? ЭкстрактBMP-массив байтов для BMP-изображения php

изображения:

424d 4284 0300 0000 0000 4200 0000 2800 
0000 4001 0000 f000 0000 0100 1800 0300 

Это не работает с ВМР (где данные входная строка, представляющее изображение)

$im = imagecreatefromstring($data); 
    if ($im !== false) { 
     header('Content-Type: image/png'); 
     imagepng($im); 
     imagedestroy($im); 
    } 
    else { 
     echo 'An error occurred.'; 
    } 

Спасибо!

+0

Газа пространство и использовать [ 'hex2bin'] (http://php.net/hex2bin) (или реализацию пользовательских программ [[' пак'] (HTTP: // PHP. net/pack)]). – mario

+0

Вам нужно преобразовать массив байтов в двоичную строку, как вы это делаете? –

ответ

1

Кажется, что BMP не поддерживается imagecreatefromstring (GD) или РНР по этому вопросу [1]

Это, кажется, поддерживает WBMP, который не является BMP. [2]

И кроме того, imagecreatefromstring() ожидает получить весь файл, а не просто «выписку» из выбранных вами пикселей. Если бы он принимал необработанные пиксельные данные (забывая о таких проблемах, как цветовой формат, количество бит и т. Д.), Вам все равно нужно указать, по крайней мере, пиксели на каждую строку, чтобы imagecreatefromstring() для GD составлять что-либо из ваших «необработанных данных», ,

Из-за природы BMP, где данные являются несжатыми пиксельными данными, если вам действительно нужно, я думаю, вы могли бы вообразить() пустое изображение и использовать imagesetpixel() в a for (y) {for (x) {...}}, чтобы установить данные пикселя из выписки из исходного файла BMP. Не зная, что вы пытаетесь сделать, я бы поспорил, что это будет проще.

[1] http://php.net/manual/en/function.imagecreatefromstring.php/"imagecreatefromstring() возвращает идентификатор изображения, представляющий изображение, полученное с данного изображения. Эти типы будут автоматически обнаружены, если ваша сборка PHP поддерживает их: JPEG, PNG, GIF, WBMP и GD2 «.

[2] http://en.wikipedia.org/wiki/Wireless_Application_Protocol_Bitmap_Format

Смежные вопросы