python制作缩略图
短信预约 -IT技能 免费直播动态提醒
给一个文件夹里的所有图片进行缩略,代码:
import os
import glob
from PIL import Image
def thumbnail_pic(path):
a=glob.glob(r'./*.jpg')
for x in a:
name=os.path.join(path,x)
im=Image.open(name)
im.thumbnail((80,80))
print(im.format,im.size,im.mode)
im.save(name,'JPEG')
print('Done!')
if __name__=='__main__':
path='.'
thumbnail_pic(path)
学习笔记:
1、os模块,python的os模块封装了常见的文件和目录操作。
2、PIL模块中Image类thumbnail()方法可以用来制作缩略图,它接受一个二元数组作为缩略图的尺寸,然后将示例缩小到指定尺寸。
Image.resize()和Image.thumbnail()的区别
根据代码和代码注释, 这两个函数都是对图片进行缩放, 两者的主要区别如下:
- resize()函数会返回一个Image对象, thumbnail()函数返回None
- resize()修改后的图片在返回的Image中, 而原图片没有被修改;
- thumbnail()直接对内存中的原图进行了修改, 但是修改需要保存
- resize()中的size参数直接设定了resize之后图片的规格,而thumbnail()中的size参数则是设定了x/y上的最大值. 也就是说, 经过resize()处理的图片可能会被拉伸,而经过thumbnail()处理的图片不会被拉伸
thumbnail()函数内部调用了resize(), 可以认为thumbnail()是对resize()的一种封装
两个函数的基本调用方式如下:
from PIL import Image
# Image.resize usage
with Image.open("test.jpg") as img:
resized = img.resize((new_x, new_y), resample=Image.LANCZOS)
resized.save("resized.jpg", format="jpeg")
# Image.thumbnail usage
with Image.open("test.jpg") as img:
img.thumbnail((max_x, max_y), resample=Image.LANCZOS)
img.save("thumbnail.jpg", format="jpeg")
3、glob模块,glob.glob(pathname),返回所有匹配的文件路径列表。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341