首页 python正文

python如何压缩图片大小与尺寸,python压缩图片大小与尺寸代码

启明SEO python 2023-07-27 12:58:21 2043 0 图片

我们在采集内容的时候,经常会遇到图片很大,为了不占用我们自己的服务器空间与宽带,最好的办法就是压缩一下图片的大小与尺寸。一般情况下,压缩一下大小即可。那么使用python代码如何实现了,下面小编就将实现代码分享出来。

from PIL import Image
import os

def img_width_height():
    file_path = r"E:\采集图片\szhuodong\20230727"    # 原始图像路径

    raw_files = os.walk(file_path)              # 遍历所有图像
    # width, height = 224, 224                    # 修改后的图像尺寸大小

    save_path = r"E:\采集图片\szhuodong2\20230727"  # 修改后图像存储的路径
    if not os.path.exists(save_path):           # 如果没有这个文件夹,就新建
        os.makedirs(save_path)

    for root, dirs, files in raw_files:
        for file in files:                      # 展现各文件
            picture_path = os.path.join(root, file)    # 得到图像的绝对路径
            pic_org = Image.open(picture_path)               # 打开图像
            width=int(pic_org.width)
            height=int(pic_org.height)
            pic_new = pic_org.resize((width, height), Image.ANTIALIAS)   # 图像尺寸修改
            _, sub_folder = os.path.split(root)              # 得到子文件夹名字
            pic_new_path = os.path.join(save_path, sub_folder)
            if not os.path.exists(pic_new_path):
                os.makedirs(pic_new_path)                    # 建立子文件夹
            pic_new_path = os.path.join(pic_new_path, file)  # 新图像存储绝对路径
            if pic_new.mode == "RGBA":pic_new = pic_new.convert('RGB')
            if pic_new.mode=='P':pic_new_path =pic_new_path.replace('.jpg', '.png')

            pic_new.save(pic_new_path)                   # 存储文件
            print("%s have been resized!" % pic_new_path)

img_width_height()

width,height是我们预先设置好的压缩后的图片尺寸,如果我们需要等比例压缩,我们可以使用

            width=int(pic_org.width)
            height=int(pic_org.height)

上面是1:1压缩图片,即不会改变图片尺寸,单纯压缩大小。等比例压缩可以使用如下代码:

            width=int(pic_org.width/3*2)
            height=int(pic_org.height/3*2)

上面的代码意思就是长宽等比压缩成原来的3分之2


评论

Python好学公众号

好文推荐

实时访客入口页面出现bd_vid=标识是什么原因

实时访客入口页面出现bd_vid=标识是什么原因

最近查看百度实时访客,总是会看到入口页面会多......

有了微信视频号,但是没有发布权限,怎么开通

有了微信视频号,但是没有发布权限,怎么开通

视频号是微信在2020年1月19号开始内测的......

如何用python抓取爱企查企业信息

如何用python抓取爱企查企业信息

前段时间,经理让我去找一些企业的信息,我平常......

服务器配置低,宝塔面板安装IIS总是安装不上怎么办

服务器配置低,宝塔面板安装IIS总是安装不上怎么办

对于一般企业网站或者博客来说,对服务器的配置......

如何修改浏览器指纹,Canvas指纹、Webgl指纹、Audio指纹修改方法?

如何修改浏览器指纹,Canvas指纹、Webgl指纹、Audio指纹修改方法?

修改浏览指纹的方法其实也是很简单,主要使用到......

win10下安装MYSQL后,提示Can't connect to MySQL server on localhost (10061)相关问题解决方法

win10下安装MYSQL后,提示Can't connect to MySQL server on localhost (10061)相关问题解决方法

我遇到的问题是电脑原先安装过mysql,卸......