如何在php中将十六进制转换为图像?

时间:2019-07-04 05:51:17

标签: php image hex

我有一个桌面应用程序。在该应用程序中,我将图像存储为十六进制,并且运行良好。但是现在我想将桌面应用程序转换为PHP中的Web应用程序。当我将十六进制代码转换为图像时,该图像未完成意味着从底部裁剪图像。

以下是我用来渲染图像的php代码

    <?php
$image="visit on given link to get the hexadecimal code";   
$bin = pack("H*", $image);
?>

<img src="data:image/jpeg;base64,<?php echo base64_encode($bin);?>" />

十六进制代码在这里 https://drive.google.com/file/d/1UU0tqTlZb-rvQIzT-6yaS8wIKGVlAZK6/view?usp=sharing

下面是我在执行上述代码后得到的图像

enter image description here

完整图片在这里

https://drive.google.com/file/d/1z-byehRMIBJqF-GlMGbGFa8hNUKpXn_w/view?usp=sharing

2 个答案:

答案 0 :(得分:0)

腰了两天后,我得到了上述问题的解决方案。 不幸的是,当我从SQL Server导出blob而不查询时,我得到的是不完整的blob。这就是PHP脚本裁剪图像的原因。但是现在我通过查询导出了blob,并获得了完整的blob,然后脚本将blob正确地转换为图像。如果您还从SQL Server导出Blob数据,则应使用给定的查询。谢谢@Bhavesh Tailor和@Magnus Eriksson给您的时间。

DECLARE @sql VARCHAR(8000)

SET @sql = 'BCP "SELECT * FROM [DB].[schema].[table] " QUERYOUT c:\exportdir\exported_table.csv -c -t, -T -S DM-SQL'

EXEC master.dbo.xp_CmdShell @sql

答案 1 :(得分:0)

我也浪费了两天时间寻找解决方案。 最后,在完成以下操作后获得了成功 mssql_query('SET TEXTSIZE 10000000'); //将限制设置为10MB 当然,必须针对我的PHP框架Yii2进行修改。 感谢Wizzard。 Partial data missing from an image file retrieved from MSSQL DB