我可以编辑 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 文件创建缩略图吗?

在 Django Admin 中有 Jcrop 的缩略图吗?

如何从我的文件夹中获取缩略图?

请问有大神知道C#怎么获取上传的文档的缩略图吗?

cdr文件显示图标时看不了缩略图怎么办

生成视频缩略图的最佳方法是啥?