Python中通过Image的open之后,去show结果打不开bmp图片,无法正常显示图片
在windows的cmd命令行下,使用Python的PIL库打开并显示一个jpg图片:
1
2
3
|
openedImg = Image. open (saveToFile); print "openedImg=" ,openedImg; openedImg.show(); |
结果是,图片被windows的图片查看器打开,却打开的是bmp图片,并且出错:
Windows Photo Viewer can’t open this picture because either the picture is deleted, or it’s in a location that isn’t avaliable
无法显示图片:
【解决过程】
1.刚开始很奇怪,为何打开的jpg图片,但是显示的时候,却变成bmp了。
后来才看懂,原来jpg图片被打开的之后,默认是以RGB打开的,所以就变成bmp图片了:
1
2
|
save verify code pic OK, saveToFile= captcha /20120702_123856_captcha .jpg openedImg= <PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=60x24 at 0x38675A8> |
2.但是不值得为何此处bmp图片,且打不开。
然后试了是File->Make a copy等操作,也都无法复制该图片,看起来,好像是该图片根本就不存在。
3.后来参考:
去试了试,把打开bmp图片的工具,从默认的Windows Photo Viewer改为别的图片查看软件(我此处的为PhotoFitre)
这样,每次再调用图片工具打开bmp图片的话,就可以使用自己所设置的PhotoFitre了。
4.再次运行脚本,就可以通过PhotoFitre打开bmp图片了:
5.另外,也有点诡异的是,本以为windows的Photo Viewer不支持bmp呢,结果将一个jpg转换为bmp后,用Photo Viewer去打开,也是可以正常打开的:
【总结】
Image.open出来的图片,Windows Photo Viewer对对其支持的不够好,而其他图片处理工具,比如PhotoFitre就可以正常打开。
所以,解决办法就是,把bmp图片默认打开方式,从 Windows Photo Viewer改为其他图片处理工具(比如Photofitre)即可使得Image Open后然后show出来的图片,可以正常显示。
Python中通过Image的open之后,去show结果打不开bmp图片,无法正常显示图片的更多相关文章
- 在Python中,如何用一行代码去判定整数二进制中的连续 1
利用字节位操作如何判断一个整数的二进制是否含有至少两个连续的1 的方法有多种,大家第一反应应该想到的是以下的第一种方法. 方法一:从头到尾遍历一遍每一位即可找出是否有连续的1存在 这个方法是最普遍的. ...
- vue中通过定义的数组循环将img的src引入图片却不显示图片问题解决方法
需要前端循环图片数组将其放到页面中去. 需要将src渲染到页面中,如果单纯写src的路径会出现不显示图片的问题 因为图片路径在assets,所以需要require一下.
- Python中,添加写入数据到已经存在的Excel的xls文件,即打开excel文件,写入新数据
背景 Python中,想要打开已经存在的excel的xls文件,然后在最后新的一行的数据. 折腾过程 1.找到了参考资料: writing to existing workbook using xlw ...
- Python 中的哈希表
Python 中的哈希表:对字典的理解 有没有想过,Python中的字典为什么这么高效稳定.原因是他是建立在hash表上.了解Python中的hash表有助于更好的理解Python,因为Pytho ...
- [转]Python中的str与unicode处理方法
早上被python的编码搞得抓耳挠腮,在搜资料的时候感觉这篇博文很不错,所以收藏在此. python2.x中处理中文,是一件头疼的事情.网上写这方面的文章,测次不齐,而且都会有点错误,所以在这里打算自 ...
- python2.7高级编程 笔记二(Python中的描述符)
Python中包含了许多内建的语言特性,它们使得代码简洁且易于理解.这些特性包括列表/集合/字典推导式,属性(property).以及装饰器(decorator).对于大部分特性来说,这些" ...
- python中的collections
python中有大量的内置模块,很多是属于特定开发的功能性模块,但collections是属于对基础数据的类型的补充模块,因此,在日常代码中使用频率更高一些,值得做个笔记,本文只做主要关键字介绍,详细 ...
- python中的反射
在绝大多数语言中,都有反射机制的存在.从作用上来讲,反射是为了增加程序的动态描述能力.通俗一些,就是可以让用户参与代码执行的决定权.在程序编写的时候,我们会写很多类,类中又有自己的函数,对象等等.这些 ...
- Python中内置数据类型list,tuple,dict,set的区别和用法
Python中内置数据类型list,tuple,dict,set的区别和用法 Python语言简洁明了,可以用较少的代码实现同样的功能.这其中Python的四个内置数据类型功不可没,他们即是list, ...
随机推荐
- 【itclx面向对象二】窥探itcl面向编程源码
从上一篇博客看出,itcl的语法其实不难,但是有个缺点,编程习惯与当前类似C++常见的面向编程还是有些区别,并且在大型项目实施中这种方式很费劲. 于是有了itclx. 例如: 1.成员变量.成员方法调 ...
- 如何在Windows系统上用抓包软件Wireshark截获iPhone等网络通讯数据
http://www.jb51.net/os/windows/189090.html 今天给大家介绍一种如何在Windows操作系统上使用著名的抓包工具软件Wireshark来截获iPhone.iPa ...
- C# IO操作(二)File类和Directory类的常用方法
本篇主要介绍一些常用的IO操作,对文件和目录的操作:留给自己复习之用. 1.创建文件 string sPath1=Path.GetDirectoryName(Assembly.GetExecuting ...
- ajaxError
$(document).ready(function () { $('input:button').click(function() { if($('#fileName').val() == '') ...
- String练习
/*1,模拟一个trim方法,去除字符串两端的空格. 思路: 1,判断字符串第一个位置是否是空格,如果是继续向下判断,直到不是空格为止. 结尾处判断空格也是如此. 2, ...
- Redis多机集群
Redis集群.网上很多教程,只是按着它的步骤来做只能在单机上跑,而已不有点抗.也不用密码验证 开始: 1:redis集群最少需要要6个服务器端,因此先搞6台虚拟机 我用 centOS-7 mini ...
- Eclipse恢复初始界面&打开视图
恢复初始界面: 单击菜单栏的windows主菜单,在子菜单里选择 Reset Perspective 会弹出各对话框 ,点 ok就可以了 打开视图:Windows->Show View 其中Ot ...
- Codevs 1218 疫情控制 2012年NOIP全国联赛提高组
1218 疫情控制 2012年NOIP全国联赛提高组 时间限制: 2 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description H 国有 n 个城市,这 ...
- I Take It All Back: Using Windows Installer (MSI) Rollback Actions
Original Link: http://blogs.flexerasoftware.com/installtalk/2011/10/i-take-it-all-back-using-windows ...
- [Effective Java读书笔记] 第二章 创建和销毁对象(1~7)
我的技术博客经常被流氓网站恶意爬取转载.请移步原文:http://www.cnblogs.com/hamhog/p/3537576.html,享受整齐的排版.有效的链接.正确的代码缩进.更好的阅读体验 ...