首页 python正文

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

启明SEO python 2023-07-27 12:58:21 2554 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指纹修改方法?

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