[python]常见第三方模块之PIL

恩 其实最近都有看python 但是总是写不出一篇笔记
然而 不写不行了啊!!!
所以有了它

首先,python3下载的是pillow不是PIL,因为PIL不支持
对于import只能导入PIL的我的理解:
我先查了一下pillow的位置
/usr/local/lib/python3.6/site-packages
看了一下里面的东西,似乎是明白了
pillow是PIL基础上产生的安装包名,但他产生的仍然是名为PIL的文件夹,即包(python模块)名
import的只可以是pip下载的默认文件夹中的包名 所以只能import PIL
安装要打pillow则是因为在wheel等包管理工具中是这个名字
而这个默认文件夹路径是怎么确定的我查了很久感觉路径应该在某个py文件中 但我还没找到 只查到了一个叫做virtualenv的东西,在教程PIL下面一章有说,但我觉得不是我要找的就没看
所以安装的方法虽然是pillow 但我们在导入的时候需要导入的是安装后产生的包名,我们需要到自己的默认下载路径去查看叫什么。其他的安装包也是如此。

然后再开始我的表演
图片的缩放
教程中的代码如下

from PIL import Image
im = Image.open('test.jpg’)
w, h = im.size
im.thumbnail((w//2, h//2))
im.save('thumbnail.jpg', 'jpeg') ```
1.open方法可以让图片变成PIL图片文件,即此时的im是一个PIL图像文件

im
<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=750x1091 at 0x106282668>```
这里有点奇怪的是,每一次导入内存位置都会改变,而不像数据,导入后就在一个固定位置。

2.thumbnail()方法:产生一个缩略图,后面的参数是图片大小
3.save()方法中,后面的参数没用吧??不管改成什么,图像格式只和前面的后缀名保持一致啊,不过文件大小倒是被改变了
我觉得大概是会转成后面的后缀名的文件,然后再根据图片名后面的后缀给再次改掉了格式,所以大小会变。

模糊效果

from PIL import Image, ImageFilter

im = Image.open('test.jpg')
im2 = im.filter(ImageFilter.BLUR)
im2.save('blur.jpg')

其中ImageFilter应该是存了各种图片滤镜的函数的包
方法为filter()
ImageFilter.BLUR为模糊方法

另外,convert() 方法实现颜色转换
convert('L') 变成黑白的图像

批量转换图像格式

这里用到了OS模块,所以去做了一下功课,之后应该也会写一个专门关于这个的笔记
OS模块简单的来说可以处理文件和目录这些我们日常手动需要做的操作
从文件名列表中读取所有的图像文件,并转换成 JPEG 格式
这是教程的代码:

from PIL import Image
import os
for infile in filelist:
  outfile = os.path.splitext(infile)[0] + ".jpg"
if infile != outfile:
try:
Image.open(infile).save(outfile)
except IOError:     
print "cannot convert", infile```

`os.path.splitext(path) `分离文件名与扩展名,默认返回(文件名,拓展名) 元组,可做分片操作,就是加一个后缀名输出,和前面的原理一样
但是这里的filelist如何指定呢?
我的问题就在于:如何把一个目录赋值给一个变量?
`os.listdir('dirname') `列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
于是我尝试: 

test = os.listdir('/Users/apple/Desktop/python/test')
test
['1.jpeg', '22.jpeg', 'aaa.jpg', 'abc', 'bbb', 'ccc.jpg', 'test.jpeg', 'thumbnail.jpg’]```

似乎是可以
但是 然而 可是

>>> for infile in test:
...     outfile = os.path.splitext(infile)[0] + ".jpg"
...     if infile != outfile:
...         try:
...             Image.open(infile).save(outfile)
...         except IOError:     
...             print("cannot convert", infile)
... 
cannot convert 1.jpeg
cannot convert 22.jpeg
cannot convert abc
cannot convert bbb
cannot convert test.jpeg```

去掉错误调试看看是什么错,显示
`FileNotFoundError: [Errno 2] No such file or directory: '1.jpeg’`
文件找不到,一定是因为文件前面得加上路径
真不知道教程的代码是怎么写的,一点都不清楚哼!
还好我机智啊!!用一个列表生成器

test = [os.path.join('/Users/apple/Desktop/python/test',f) for f in os.listdir('/Users/apple/Desktop/python/test’)]````
注意路径path得加引号
这下总可以了吧!!
恩 看一下目录 good 成功啦!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,172评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,346评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,788评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,299评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,409评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,467评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,476评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,262评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,699评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,994评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,167评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,827评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,499评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,149评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,387评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,028评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,055评论 2 352

推荐阅读更多精彩内容