图片转字节

把 PNG、JPEG、GIF 或 WebP 按原始字节读出来,复制成代码要的形态:hex、Uint8Array 字面量或 C 数组。不上传任何文件。

文件在你的浏览器里按原始字节读取,不会上传。你会拿到字节数、hex、Uint8Array 字面量和 C 数组 —— 能直接粘进代码的那几种形态。

什么时候会用到

  • 你在写嵌入式或固件的测试,需要把图片变成 C 数组,而不是运行时去加载一个文件。
  • 测试夹具需要内联一张小图的精确字节,好让它不依赖文件系统。
  • 你想确认一个文件是不是它扩展名声称的格式 —— 读头几个字节,而不是信文件名。
  • 你在比同一个资源的两次构建,需要字节数和 hex 来看出到底变了什么。

别的图片转字节工具差在哪里

多数转换器给你一串 Base64 就说这是字节。那是在文件之上又套了一层编码,不是文件本身 —— 不先解码一次根本粘不进 C 数组。

手工拼数组的工具会丢掉前导零:0x04 变成 0x4,后面每个字节都错位。数组照样能编译,图是坏的。

先解码再输出的转换器给你的是像素,不是文件。PNG 的文件头不是像素,而固件要的正是原样存储的那些字节。

常见问题

这些是文件的字节,还是解码后图像的字节?

是文件,原样存储的,包含文件头与元数据。C 数组和字节级比对要的正是这个。解码成像素是另一件事,产出的数组也不同 —— 它的头几个字节是像素数据,而不是 PNG 签名。

粘进 C 数组后编译不过,为什么?

常见两种原因:把周围的说明文字一起粘进去了,或者某一行的 0x 前缀丢了。这个工具输出的是带 0x 前缀、两位小写十六进制、逗号分隔、每行 12 个,并把长度写进声明,好让编译器替你核对。

图片会被上传到什么地方吗?

不会。文件用浏览器的 File API 读取,在页面里完成格式化,没有任何网络请求 —— 这也意味着页面加载后离线也能用。

为什么没有缩放或压缩选项?

因为缩放会改变字节。这个工具的用途是取出你手上这个文件的确切字节;要改里面的内容,该用图片编辑器。

其它工具