如何修复Windows7照片查看器无法显示的手机图片

最近,经常碰到有人反映手机通过微信或者QQ传输到电脑上的图片无法打开的问题。

具体表现为在Windows7中打开图片,提示“Windows 照片查看器无法显示此图片,因为计算机上的可用内存可能不足。请关闭一些目前没有使用的程序或者释放部分硬盘空间(如果硬盘几乎已满),然后重试。” 如下图所示: 

20200529145911_49922.png

经确认:

1、其它图片,相比问题图片,无论是文件大的和文件小的,都能正常打开。

2、问题图片能够显示缩略图,而且用画图,PS等软件都能正常打开。

3、问题图片在win10系统里能够正常打开。

网上先搜索了一下问题的解决方法,主要有以下几类:

1、  校准颜色,有说校准打印机颜色的,也有说校准显示器颜色的。(可能可以,但是小编没有成功)

2、  修改系统变量,把tmp变量指向别的路径(小编没有成功)

3、  更换打开图片的软件并修改另存一下,例如2345看图,PS等(这个方案可行)

4、  增加电脑内存(看到这个方法,真的要吐血)

以上第三个方法虽然可以解决打开的问题,但是如果图片比较多的话,机械性重复操作起来就觉得比较烦心和费时。本来,需要花时间的业务工作还有很多,把时间花在非主业的看问题图片上,实在有点可惜,能不能有一个彻底的解决办法呢?怀着这个期望,小编挤时间调查研究了一番,总算找到了病灶。调查过程很枯燥,不再累述,思路略略带过提一下,供日后借鉴。思路切入点有两个,一是为什么校准颜色(疑似系统颜色空间和图片自带颜色空间不一致),二是为什么内存不足(疑似读取图片长和宽时读错大小)。结合JPG图片的格式规范(里面有图片的扩展信息,包括JFIF,EXIF,ICC等等,这些信息不是图片的必要信息,允许删除),利用winHex编辑器(二进制编辑器)对JPG图片的扩展信息进行修改、切除等操作,观察图片是否能恢复正常,以便查找病灶。最终发现两个解决办法:

一是在JPG图片的EXIF信息中,把代表数据读取顺序的“MM”两个字节改成“II”,图片可以正常打开。

20200529145911_57704.jpg

二是把JPG图片中的ICC信息都删除,图片也可以正常打开。


20200529145911_37202.png

问题病灶找到了,接下去就方便了,用自己熟悉的c#语言,写了一个批量处理的小程序,方便修复图片,节省时间。让人做人做的事情,让机器做机器做的事情。

20200529145911_58506.png

windows7修复手机图片无法显示工具简介:

本工具支持下拉框中选择多种修复方式,一种不行可以尝试其它方法。

默认方法对文件改动最小,仅2字节。如果默认方法无效,可以考虑删除ICC,或者删除所有APP信息。

下载地址:

202005291590735517111088.zip

标签:
版权所有原创文章,转载请保留或注明出处:http://gxjss.cn/post/116.html

已有 0 位网友参与,快来吐槽:

发表评论

验证码