You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将数据库存储的JPEG十六进制文本转换为正常图片,是否有Python解决方案

十六进制JPEG内容转可打开图片的解决方案

核心原因

你从数据库中取出的jpg字段内容是JPEG二进制数据对应的十六进制文本编码,直接复制到文本编辑器保存时,存储的是f、d等十六进制字符本身的ASCII编码值,而非十六进制串映射的原始二进制字节,和真实JPG文件的结构完全不符,因此无法被图片阅读器识别打开。

转换方法

方法1:Python代码实现(推荐)

只需先清洗十六进制串的冗余空格,再转成二进制写入文件即可,代码如下:

def hex_str_to_jpg(db_hex_content: str, output_file_path: str = "result.jpg"):
    # 移除十六进制串中的所有空格
    processed_hex = db_hex_content.replace(" ", "")
    # 十六进制字符串转换为原始二进制字节
    jpg_binary = bytes.fromhex(processed_hex)
    # 二进制模式写入文件
    with open(output_file_path, "wb") as file:
        file.write(jpg_binary)

# 调用示例:将你从数据库查询到的jpg字段字符串传入即可
raw_jpg_content = "ffd8ffe0 00104a46 49460001 01000001 00010000 fffe002e 496e7465 6c285229 204a5045 47204c69 62726172 792c2076 65727369 6f6e205b 312e3531 2e31332e 34355d00 ffdb0043 00080606 07060508 ..."
hex_str_to_jpg(raw_jpg_content)

注意事项:

  • 需确保拿到的十六进制串完整,标准JPG文件固定以ffd8开头、ffd9结尾,若结尾缺失会导致图片损坏无法打开
  • 写入文件必须使用wb(二进制写入)模式,不可使用普通文本写入模式

方法2:手动转换

如果仅需临时处理少量文件,可使用本地的十六进制转二进制工具,先删除十六进制串中的所有空格,再粘贴到工具中转换为二进制,导出后将文件后缀改为.jpg即可。

内容的提问来源于stack exchange,提问作者gregster

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 22:06:03