PHP:从二进制显示JPG

PHP:从二进制显示JPG,php,image,binary,jpeg,blob,Php,Image,Binary,Jpeg,Blob,我有一个jpg blob,它存储在一个外部数据库中,我希望通过php将其显示为一个图像。问题是,每当我将内容类型设置为图像/jpeg并回显blob时,我就会在浏览时看到损坏的图像图标 我已经尝试过通过sublime从头开始创建文件,当我将其保存为十六进制文件时,它就起作用了,因此我知道数据是有效的 我曾尝试让脚本创建一个文件,但它设置了charset=us ascii,因此它不会被视为图像文件 有没有人有使用原始图像二进制文件的经验?有人知道如何显示图像,甚至将其保存到文件中吗 提前谢谢 顺便说

我有一个jpg blob,它存储在一个外部数据库中,我希望通过php将其显示为一个图像。问题是,每当我将
内容类型设置为
图像/jpeg
并回显blob时,我就会在浏览时看到损坏的图像图标

我已经尝试过通过sublime从头开始创建文件,当我将其保存为十六进制文件时,它就起作用了,因此我知道数据是有效的

我曾尝试让脚本创建一个文件,但它设置了
charset=us ascii
,因此它不会被视为图像文件

有没有人有使用原始图像二进制文件的经验?有人知道如何显示图像,甚至将其保存到文件中吗

提前谢谢

顺便说一下,我会提供二进制文件,但它太大了,不能放在这里

编辑:(添加了一些代码)



试试
$im=imagecreatefromstring($data)
通过
imagejpeg($im)输出它

尝试
$im=imagecreatefromstring($data)
通过
imagejpeg($im)输出它

在继续研究之后,我发现了这篇文章

我用下面的代码解决了这个问题

<?php
header('Content-Type: image/jpeg;');

$data = 'The hex data';

$data = pack('H*',$data);

$im = imagecreatefromstring($data);

imagejpeg($im);

?>

在继续研究之后,我发现了这篇文章

我用下面的代码解决了这个问题

<?php
header('Content-Type: image/jpeg;');

$data = 'The hex data';

$data = pack('H*',$data);

$im = imagecreatefromstring($data);

imagejpeg($im);

?>


@Dagon Done。。。不知道有多少帮助。@Dagon完成了。。。不确定这有多大帮助。您可能需要使用类似于
$data=unpack('H',$data)的函数将二进制字符串转换为字符字符串$data=unpack('H',$data)创建图像之前。