【问题标题】:How to convert hexadecimal into image in php?如何在php中将十六进制转换为图像?
【发布时间】:2023-03-13 14:42:01
【问题描述】:

我有一个桌面应用程序。在该应用程序中,我将图像存储为十六进制,并且运行良好。但现在我想将桌面应用程序转换为 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

以下是执行上述代码后得到的图像

完整的图片在这里

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

【问题讨论】:

  • 在开始调试您的代码之前,您的客户是否尝试再次在他们的应用程序中打开图像以查看它是否正确保存?
  • " />
  • 是的,在桌面应用程序中,同样的十六进制代码运行良好。
  • @BhaveshTailor - 您不能将二进制数据直接回显到 src-tag 中。它应该是 base64 编码的(就像 OP 一样)。
  • header("内容类型:图片/jpeg"); $data = "/9j/4AAQSkZJRgABAQEAYABgAAD........";回声 base64_decode($data);在第二种情况下,请改用: echo '';

标签: php image hex


【解决方案1】:

折腾两天后,我得到了上述问题的解决方案。 不幸的是,当我在没有查询的情况下从 SQL 服务器导出 blob 时,我得到了一个不完整的 blob。这就是 PHP 脚本裁剪图像的原因。但是现在我通过查询导出了 blob 并获得了完整的 blob,然后脚本正在正确地将 blob 转换为图像。如果您还从 SQL 服务器导出 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

【讨论】:

    【解决方案2】:

    我也浪费了两天时间寻找解决方案。 最后,在做了以下之后就成功了 mssql_query('SET TEXTSIZE 10000000'); // 将限制设置为 10MB 当然,必须为我的 php 框架修改这个,在我的例子中是 Yii2。 归功于向导。 Partial data missing from an image file retrieved from MSSQL DB

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-08
      • 2015-09-13
      • 2013-10-08
      • 1970-01-01
      • 1970-01-01
      • 2015-06-25
      • 2013-03-10
      相关资源
      最近更新 更多