为什么我收到错误:"不是JPEG文件:以0x89 0x50开头"

mat*_*rns 75 png jpeg image corruption

当我尝试打开我的jpg文件时,为什么会收到消息"不是JPEG文件:以0x89 0x50开头"?

mat*_*rns 89

该文件实际上是一个文件扩展名错误的PNG."0x89 0x50"是PNG文件的启动方式.


Dav*_*d M 55

您的文件不是JPEG文件,它刚刚从PNG重命名为JPEG文件.某些程序会将其作为可识别的文件扩展名打开,并从前缀推断出类型,但显然不是您正在使用的类型.

  • 如果你想找到这些文件,你可以使用这个 StackOverflow 链接:/sf/ask/2147935751/ (2认同)

Liu*_*Hao 11

您的“JPEG”文件的文件扩展名“jpg”或“jpeg”错误,它的真实类型很可能是 PNG 文件。

只需尝试将文件名从“xxx.jpg”或“xxx.jpeg”重命名为“xxx.png”。

在大多数情况下,为了方便,程序会通过文件扩展名来区分文件类型,但是,如果我们为其他格式的文件(如 PNG 文件)指定了错误的文件扩展名(如 'jpg'),程序仍会尝试加载带有 JPG 库的 PNG 文件,肯定会向用户抛出错误。

实际上,不同类型的文件总是有不同的文件头(前 1024 字节)

这是在类 Unix 平台上检查文件的真实类型的快速通道:

使用“文件”命令,例如:

file e3f8794a5c226d4.jpg 
Run Code Online (Sandbox Code Playgroud)

和输出是

e3f8794a5c226d4.jpg: PNG image data, 3768 x 2640, 8-bit/color RGBA, non-interlaced
Run Code Online (Sandbox Code Playgroud)

这将打印文件信息详细信息,我们还可以检查指定的文件是否已被破坏。


小智 10

只需将 *.jpg 重命名为 *.png。或者在浏览器中打开这个文件