专栏首页python3python制作缩略图

python制作缩略图

给一个文件夹里的所有图片进行缩略,代码:

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),返回所有匹配的文件路径列表。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python 趣味练习- 修改图片

    https://github.com/Yixiaohan/show-me-the-code

    py3study
  • (项目)在线教育平台(十一)

      首页的全局搜索功能可以对课程,机构,教师进行全局搜索,搜索的代码放在deco-common.js文件中:

    py3study
  • 3-了解.json文件

    它的作用是配置小程序的页面,这个配置项是必填的,它接受一个数组,里面的每一项都是字符串,从上面给出的代码:

    py3study
  • 3行代码让Python数据处理脚本获得4倍提速

    Python是一门非常适合处理数据和自动化完成重复性工作的编程语言,我们在用数据训练机器学习模型之前,通常都需要对数据进行预处理,而Python就非常适合完成这...

    一墨编程学习
  • 20180818_ARTS_week08

    这道题是要把字符串中的数字变成 int,通常的做法是遍历字符串,然后判断是不是在 0~9 中,如果把 0~9 放数组里每次循环检查感觉不是太好,时间复杂度是个 ...

    Bob.Chen
  • Global Game Jam 历届主题

    王兵
  • 微信小程序wepy框架入门教程-底部导航栏效果(五)

    wepy是腾讯自己开发的框架,作用主要是提高开发者的开发效率,采用了类似使用了vue的代码书写风格,开发者可以熟练的上手小程序开发。

    王小婷
  • Golang groupcache LRU 缓存简介与用法

    LRU(Least Recently Used,最近最久未使用算法)是一种常见的缓存淘汰算法,当缓存满时,淘汰最近最久未使用的元素,在很多分布式缓存系统(如Re...

    Dabelv
  • 专栏:001: git 简易教程12:概念介绍篇3 代码示例篇3:附属篇4:参考

    谢伟
  • 【iOS开发】添加设备到 iOSTeam Provisioning Profile

    如果你是 iOS个人开发者的话,那么一定知道,可以在 https://developer.apple.com/account/ios/device/device...

    KyXu

扫码关注云+社区

领取腾讯云代金券