python批量修改图片格式|python批量给图片增加水印|python批量设置图片大小

一、图片批量转换为jpg格式

代码的作用是找到指定目录下的非 jpg 图像文件,将其转换为 jpg 格式并保存在另一个目录。

其中,PIL 模块是 Python 的一个第三方图像处理库,可以用来读取、修改和保存各种图像格式的文件。在这段代码中,我们使用 Image.open() 函数打开每个待转换的图像文件,然后再调用 Image.save() 函数将其保存为 jpg 格式的文件。

由于不同图像格式之间可能存在像素密度等差异,因此在进行图像格式转换时,有可能会对图像的质量产生一定的影响。如果需要保证图像的质量和清晰度,请谨慎选择转换方案,或者手动调整图像参数。

import os
from PIL import Image

path = "C:/Users/ypzhao/Desktop/pict/"
path_convert = "C:/Users/ypzhao/Desktop/pict_con/"

for i in os.listdir(path):
    file_name,file_suffix = i.split(".")
    if file_suffix != "jpg":
        im = Image.open(path+f"{
      
      i}")
        im.save(path_convert+f"{
      
      file_name}"+".jpg")       
    else:
        pass   

转换前:
在这里插入图片描述
转换后
![在这里插入图片描述](https://img-blog.csdnimg.cn/d6f934cda7c8422ebc2a7297b08def5d.p

二、批量调整图片大小

for i in os.listdir(path_convert):  
    file_name,file_suffix = i.split(".")
    if file_suffix == "jpg":
        im = Image.open(path_convert+f"{
      
      i}")
        width,height = im.size
        print(width,height)
        
        new_width,new_height = int(12*37.8),int(7*37.8)
        print(new_width,new_height)
        
        new_im = im.resize((new_width,new_height))
        print(new_im.size)
        new_im.save(path_resize+f"{
      
      file_name}"+".jpg")

三、批量给图片添加水印

# -*- coding: utf-8 -*-
"""
Created on Mon May 22 14:33:39 2023

@author: ypzhao
"""

import os
from PIL import Image, ImageDraw, ImageFont

file_path = "C:/Users/ypzhao/Desktop/pict/"
path= "C:/Users/ypzhao/Desktop/resize/"

for i in os.listdir(path):
    file_name,file_suffix = i.split(".")
    
    if file_suffix == "jpg":
        im = Image.open(path+f"{
      
      i}")
        draw = ImageDraw.Draw(im)
        font=ImageFont.truetype(r'C:\Windows\Fonts\simhei.ttf',30)
        draw.text((200,180),"项目申报小狂人",font=font,fill="yellow")
        draw.text((100,80),"项目申报小狂人",font=font,fill="blue")
        im.save(file_path+f"{
      
      file_name}"+".jpg")

3.1 运行结果:

请添加图片描述

猜你喜欢

转载自blog.csdn.net/m0_58857684/article/details/130806166