1

我正在从 MSSQL 数据库中获取数据并尝试将其转换为图片并在网站上显示。我尝试了一些不同的技巧,但似乎都没有奏效。所以我希望有人会好心地帮助我。

数据库图像太大,无法在此处显示,但这是一个剪辑(它在 DB 中存储为 varbinary(MAX)):

$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 以外的其他格式对其进行解码/编码。

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

提前致谢!

4

1 回答 1

0

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

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

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

于 2014-08-04T08:06:24.237 回答