可变二进制(最大)到图片



我正在从MSSQL数据库获取数据,并试图将其转换为图片并在网站上显示。我试过几种不同的方法,但似乎都不奏效。所以我希望有人能好心地帮助我。

数据库图像太大,不能在这里显示,但这里是一个剪辑(它被存储为varbinary(MAX) in DB)):

$kuva = 0xFFD8FFE000104A46494600010101004800480000FFE138724578696600004D4D002A00000008000C010E0002000000200000

我假设它是base64,并尝试了以下

> echo '<img src="data:image/jpg;base64,='.base64_encode("0xFFD8FFE000104A46494600010101004800480000FFE1365E4578696600004D4D002A00000008000C010E000200000020000008AA010F000200000005000008CA0110000200000009000008D00112000300000001000100000");
<img src="data:image/jpeg;base64,<?php echo base64_encode($kuva);?>" />
header("Content-type: image/jpg");
echo base64_encode($kuva);
echo base64_encode($kuva);
echo base64_decode($kuva);

然而,我似乎找不到正确的格式(png, gif, jpg, jpeg),或者我必须用base64以外的东西解码/编码。

我知道这个网站上有很多关于这个话题的答案,但到目前为止还没有任何效果。如果有人知道答案,我将不胜感激,或者可以指出一些网站/程序,可以实际识别代码,并允许将其类型转换为可以保存为图像的格式。

提前感谢!

实际问题是PHP数组在读取整个图片数据之前耗尽了空间。这导致部分代码被读入数组(当然不能显示)。我使用的解决方案是在数据库服务器端使用一个脚本,该脚本使用t-sql将图片转换为适当的格式并将其写入另一个表。

然而,这并没有解决PHP查询结果在显示整个图片之前耗尽空间的问题。我尝试将图片代码切割为几个数组单元(每个单元读取约50K字符),但PHP上的解析结果无法显示为图像。

如果有人知道如何避免这个问题,请随时写下答案

最新更新