码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Python批量修改图片size


    • 前言
    • 简单讲解
      • 1、建目录
      • 2、图片大小修改
    • 批量修改图片Size
      • 1、目录处理
      • 2、图片批量修改Size完整代码

    前言

    出发点,网上下了一批png,使用wxFormBuilder做软件工具栏的图标,原图做出来的效果
    在这里插入图片描述
    这么大的一个图标让笔者差点就笑岔气了
    以前都是用工具改变图片的大小,这次想了下,开发的事情肯定用脚本搞定
    所以决定写一个脚本让图片变成32x32,原图是124x128的,
    在这里插入图片描述
    在这里插入图片描述

    简单讲解

    本文使用Pillow(PIL),
    安装:

    pip install pillow

    这个库有很多图片处理功能,修改图片大小仅是其中一种。不多说上操作

    1、建目录

    新增一个changePicSizeDemo的目录,
    将需要改变的一个源文件放进目录下
    新增一个Demo.py编写脚本
    在这里插入图片描述

    2、图片大小修改

    #导入Image库
    from PIL import Image
    
    #打开当前目录下 !.png 图片文件对象
    old_pic = Image.open('!.png')
    
    #修改图片size为32*32,生成新图片对象
    new_pic = old_pic.resize((32, 32), Image.ANTIALIAS)
    
    #保存新图片文件,保存到当前目录
    new_pic.save('!01.png')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    运行后,得到32*32的小图标,看下图,相比前面的图片可以清楚看见像素格子了。
    在这里插入图片描述

    批量修改图片Size

    1、目录处理

    在changePicSizeDemo目录下新增两个目录

    SourcePics目录存入须改变Size的图片文件
    CsavePics目录用来存放改完Size后的图片文件

    在这里插入图片描述

    2、图片批量修改Size完整代码

    from PIL import Image
    import os
    
    # 获取当前py文件的根目录
    basePath = os.path.dirname(os.path.abspath(__file__))
    # 获取图片源目录
    old_Path = os.path.join(basePath, 'SourcePics')
    # 获取图片改后保存目录
    new_path = os.path.join(basePath, 'CsavePics')
    
    # os.walk遍历这个路径下的图片文件
    raw_files = os.walk(old_Path)
    for root, dirs, files in raw_files:   # 把遍历的根目录、子目录以及文件名展现出来
        for file in files:                # 把单个文件名提取出来,方便一个个处理
            # 合并路径得到源图片的绝对路径
            old_pic_path = os.path.join(root, file)
            # 打开当前目录下图片文件对象
            old_pic = Image.open(old_pic_path)
            # 修改图片size为32*32,生成新图片对象
            new_pic = old_pic.resize((32, 32), Image.ANTIALIAS)
            # 合并路径得到新图片的绝对路径
            new_pic_path = os.path.join(new_path, file)
            #保存新图片文件到新目录
            new_pic.save(new_pic_path)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    运行
    CsavePics目录下得到了一批32x32的图片
    在这里插入图片描述
    最后将改好的图片放到wxFormBuilder的做的工具里面去,舒服了。
    在这里插入图片描述

    图片Size修改分享完毕,希望多多点赞与收藏

  • 相关阅读:
    Python网络爬虫入门篇
    Python3,这应该是,使用最广泛的6个内置函数,别说你还不知道。
    【课程作业经验】基于MindSpore的YOLOv3-Darknet53的车辆检测计数实现
    K8S 1.20 弃用 Docker 评估之 Docker 和 OCI 镜像格式的差别
    ICCV 2023 | MoCoDAD:一种基于人体骨架的运动条件扩散模型,实现高效视频异常检测
    【人脸检测 FPS 1000+】ubuntu下libfacedetection tensorrt部署
    电话号码的字母组合
    瑞芯微RV1109 SDK定制与调试总结笔记
    rCore-Tutorial-Book第二课(移除Rust std标准库依赖)
    使用vite+react搭建项目踩坑记录
  • 原文地址:https://blog.csdn.net/weixin_40331132/article/details/127721375
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号