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

技术咨询:该unsigned char数组存储的图片格式是什么?如何加密图片为该格式?

问题解答

1. 图片格式判断

这段代码存储的是PNG格式的图片。判断依据是数组开头的8个字节:0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a,这是PNG文件的标准文件签名(magic number),是PNG格式的专属标识。

2. 转换(含加密)为该格式的步骤

这里的“加密转换为此格式”核心是完成「图片加密(可选)+ 二进制数据转C语言数组」两个操作,具体步骤如下:

步骤1:准备原始PNG图片

如果目标图片不是PNG格式,先用画图、Photoshop等工具将其导出为PNG格式文件。

步骤2:(可选)对PNG文件进行加密

若需要加密,可选用对称加密算法(如AES)处理PNG的二进制数据。比如用C语言的OpenSSL库读取PNG文件字节流,执行加密逻辑,得到加密后的二进制数据。

步骤3:将二进制数据转为unsigned char数组格式

把(加密后的)PNG二进制数据转换成示例中的数组形式,有两种高效方式:

  • 小文件手动转换:逐个读取文件字节,将每个字节转为0xXX格式的十六进制字符串,用逗号分隔后放入数组。
  • 脚本批量转换(推荐):用Python脚本自动生成代码,示例如下:
with open("target_file.png", "rb") as f:
    raw_data = f.read()
# 生成符合格式的C数组代码
array_code = f"unsigned char LogoPIC_data[] = {{ {', '.join(f'0x{b:02x}' for b in raw_data)} }};"
print(array_code)

运行脚本后,会直接输出和示例结构一致的C语言数组代码。

关键注意点

  • 如果是加密后的数组,在使用时需要先对数组数据执行解密操作,再还原为PNG文件才能正常显示。
  • 你提供的示例代码是截断状态,完整的数组需要包含PNG文件的全部字节数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 00:26:16