将PNG图像读取为NSData,出现一些额外的字节

Posted

技术标签:

【中文标题】将PNG图像读取为NSData,出现一些额外的字节【英文标题】:Read the PNG image as NSData, and some extra bytes appear 【发布时间】:2020-04-15 11:39:29 【问题描述】:

以上是使用ios SDK读取图片的数据, 00000004 43674249 50002006 2cb87766 是额外的字节。 有谁知道这些字节是什么?

【问题讨论】:

【参考方案1】:

根据the official specifications,您的图片不是标准 PNG。您指出的字节构成有效的PNG chunk:

00000004 Data length
43674249 Block ID "CgBI"
50002006 4 bytes of proprietary information
2CB87766 CRC checksum of the data block

但是对于符合标准的 PNG 图像,块的位置和指示的类型无效。 这表示图像是使用 Apple 的修改版pngcrush 处理的。有关块内容和其他与官方规范的偏差的非官方信息,请参阅http://iphonedevwiki.net/index.php/CgBI_file_format#Differences_from_PNG。

【讨论】:

谢谢,这个问题困扰了我一段时间

以上是关于将PNG图像读取为NSData,出现一些额外的字节的主要内容,如果未能解决你的问题,请参考以下文章

iPhone保存的png在我加载回来后不一样了

如何将 UIImage 转换为 NSData 或 CFDataRef?

如何将字节数组转换为图像文件?

SWIFT:将字节从 NSData 粘贴到 Struct?

将多字节数组图像数据合并为一个字节数组数据,并将WriteAllBytes合并为单个图像输出

将 GIF 图像转换为 nsdata