我可以编辑 JFIF 文件中的缩略图吗?
Posted
技术标签:
【中文标题】我可以编辑 JFIF 文件中的缩略图吗?【英文标题】:Can I edit the thumbnail image inside JFIF files? 【发布时间】:2012-06-20 12:45:15 【问题描述】:我可以编辑 JPG/JFIF 文件中的缩略图吗?
如果这是可能的——怎么可能(使用什么实用程序)?
最终结果需要是缩略图“可以”是与 jpeg 完全不同的图像。
非常感谢, 迈克尔
【问题讨论】:
【参考方案1】:通常,缩略图是未压缩的 RGB 数据。您找到标记,查看标记缩略图的宽度/高度的位置,然后修改其后面的字节流。流的长度为 width*height*3 个字节。
如果它被索引,您必须覆盖调色板和索引条目。只需寻找 APP0 标记,开始修改它。
【讨论】:
【参考方案2】:符合标准的 EXIF 缩略图图像必须适合 64K APP1 标记,并且通常压缩为 JPEG(与 @Karthik 所说的不同)。缩略图图像独立于主图像,并且可以轻松更改,因为它位于不影响主图像的标记段内。 JPEG 标记段基本上是具有 2 字节标识符(例如本例中的 FFE1)和 2 字节长度的独立二进制 blob 的链接列表。您可以将一个换成另一个,并且不会“破坏”该文件。没有校验和或其他机制来验证整个文件数据的完整性。我不熟悉编辑此信息的库,但您可以用少量代码来完成,只需解析标记 blob 的类型和长度,而不知道它们的内容。您还可以通过确保您的新缩略图不大于原始缩略图来以“快速而肮脏”的方式进行操作,然后您可以将其写在原处,而无需移动文件的其他部分。不检查标记长度与其内容,因此忽略未使用的空间。
【讨论】:
以上是关于我可以编辑 JFIF 文件中的缩略图吗?的主要内容,如果未能解决你的问题,请参考以下文章
我可以使用 Filestack 从 PDF 文件创建缩略图吗?