【 XBATU . COM 】    【 MOZICHINA . COM 】    【 2858999 . COM 】


 

解决Linux平台下无法打开jpg文件(提示: “Not a JPEG file: starts with 0x89 0x50”)的方法

webmaster@李松涛 提交于 周二, 03/22/2016 - 13:40

 

1、我们经常从网上下载各种jpg图片,有时候某些jpg图片在ubuntu14.04平台下无法显示缩略图,如下图中的vim_logo.jpg。

某些jpg图片在ubuntu14.04平台下无法显示缩略图
某些jpg图片在ubuntu14.04平台下无法显示缩略图

2、这种图片用某些图片查看器,比如Image Viewer无法打开,提示错误: Not a JPEG file: starts with 0x89 0x50 ,如下图:

Image Viewer打开后缀名为jpg的png图片时的错误提示
Image Viewer打开后缀名为jpg的png图片时的错误提示

3、其实,这种文件用ImageMagick(display)是可以正确打开的,用ImageMagick(display)打开该文件后,用鼠标右键弹出快捷菜单,选择“Image Info”,如下图:

查看vim_logo.jpg的图片信息
查看vim_logo.jpg的图片信息

看到了吧,vim_logo.jpg的真实的图片格式为PNG(Portable Network Graphics),而 PNG文件是以字节0x89 0x50 打头的。

4、我们可以用hexdump命令查看一下,以便验明正身。:) 

打开terminal 输入如下命令:

hexdump vim_logo.jpg |head -1

vim_logo.jpg文件第一行的信息
vim_logo.jpg文件第一行的信息

 

至于命令hexdump vim_logo.jpg |head -1的含义及上图中为啥是5089而不是8950,就不用我多说啦!:)

5、好啦,问题根源找到啦,vim_logo.jpg本来是一个png文件,却用了一个jpg的后缀名,现在直接把vim_logo.jpg改为vim_logo.png,这时就可以显示图片的缩略图了,参看步骤1的图,而且也可以用Image Viewer打开啦。

The end

 

 


【 XBATU . COM 】    【 MOZICHINA . COM 】    【 2858999 . COM 】