将 UTF-16 图像加载到内存中

Posted

技术标签:

【中文标题】将 UTF-16 图像加载到内存中【英文标题】:Loading a UTF-16 image into memory 【发布时间】:2013-04-16 10:40:02 【问题描述】:

我正在尝试加载以 UTF-16 JFIF 格式保存的 ID3 图像标签。我使用的库 (Juce) 无法解析图像,因为它假定数据是原始二进制格式。

我已成功解析的大多数图像标签将编码报告为 ISO-8859 (latin-1),但由于 latin-1 是 UTF-16 的子集,因此无法进行转换。

如何以我想要的原始格式获得这个 UTF16 编码的二进制块?谁能告诉我以 UTF16 格式存储图像的好处?!

【问题讨论】:

【参考方案1】:

latin1 不是 UTF-16 的子集!

我认为您误解了文本编码和二进制编码。 UTF-16 用于字符编码,基本单位是 16 位整数(UTF-8 使用 8 位整数)。

JPEG 图片 (JFIF) 是二进制编码的,其数据不应通过字符编码算法进行转换。

如果你真的这样做了,那你就不走运了,因为在二进制流上使用字符转换算法取决于当时使用的任何“源”文本字符集。

您或许可以尝试通过猜测初始源字符集,使用 iconv 将 (UTF-16) 二进制数据转换回二进制。

【讨论】:

以上是关于将 UTF-16 图像加载到内存中的主要内容,如果未能解决你的问题,请参考以下文章

画布中图像的 CORS 设置

Swift导航栏中图像的动画变化

UICollectionViewCell 中图像的异步加载导致标签消失

根据列表中图像的数量按比例调整动态图像列表的大小

OpenCV中图像算术操作与逻辑操作

matlab中图像旋转