我可以在不改变尺寸或内容的情况下填充图像的大小吗?

我可以在不改变尺寸或内容的情况下填充图像的大小吗?

我在工作场所使用的内部工具有最小图像文件大小限制。不幸的是,我有一个用例需要上传和处理小于此限制的图像文件。

有没有办法填充图像文件的大小而不实际更改图像的内容?我大部分时间都在处理 jpeg 和 png 文件。

答案1

对于 JPEG 通常是,您只需在末尾添加零,这不会影响图像本身。JFIF 和 EXIF(两种 JPEG 文件格式)均不受此影响。一些迂腐的图像处理工具可能会抱怨末尾有多余的数据,但它们仍然可以处理图像。

至于 PNG,我不太了解它的内部工作原理,但你可以尝试添加零,看看它是否有效。很可能它也足够有弹性。


有关 JPEG 的详细信息,供好奇的读者参考。

JPEG 是一种压缩算法,而不是文件格式。有两种文件格式可以容纳 JPEG 压缩图像:JFIF 和 EXIF(后者以“EXIF 标签”而闻名,相机通常用它来存储照片元数据)。它们大多兼容。

FF D8两种格式都由一个魔数和随后的任意数量的二进制块(称为“段”)组成。每个块都以一个 4 字节标记开头:

  • 第一个字节始终是FF
  • 第二个字节是段类型标识符
  • 第三和第四个字节是一个 16 位数字,等于段数据长度(以字节为单位)+2(因此比段的累计长度少 2 个字节)

段头后面跟着适当数量的字节。后续段直接附加在末尾。

JFIF 和 EXIF 共享相同的结构和段类型标识符,因此它们“大部分”兼容。“大部分”,因为它们对第一个段有不同的要求。实际上,大多数工具可以处理混合的 JFIF/EXIF 文件,因为这些段具有不同的类型标识符。

所有段都以字节开头FF,因此添加零会创建无效段。大多数工具似乎都会默默忽略这些。

相关内容