如何用python缩放图片尺寸?

如何用python缩放图片尺寸?【】

复制以下脚本,保存为一个.py文件,然后将这个.py文件放在要缩放的图片的同路径下。

from PIL import Image
import os

# 指定缩放后的尺寸
target_size = (1280, 720)

# 获取当前路径下的所有 .jpg 文件
current_path = os.getcwd()
image_files = [f for f in os.listdir(current_path) if f.endswith('.jpg')]

# 遍历所有图片并进行缩放
for image_file in image_files:
    # 打开图片
    img = Image.open(image_file)
    
    # 缩放图片到指定大小
    img_resized = img.resize(target_size, Image.Resampling.LANCZOS)
    
    # 保存缩放后的图片,文件名后加 '_resized'
    new_file_name = os.path.splitext(image_file)[0] + '_resized.jpg'
    img_resized.save(new_file_name)
    
    print(f'{image_file} 已缩放并保存为 {new_file_name}')

print('所有图片处理完成。')

运行这个脚本文件即可。
注意:以上示例脚本会将当前路径下的所有.jpg图片都缩放为1280×720的尺寸。但不必担心,原图片不会被删除。
缩放后的图片会保存到当前路径下,命名为 xxx_resized.jpg。xxx为原.jpg图片的名称。
如果需要缩放到其他尺寸,更改 target_size 即可。

### 使用Python进行图像缩放 为了实现图像的缩放处理,可以利用`Pillow`库中的功能来简化这一过程。下面是一个简单的例子,展示了如何加载一张图片,并对其进行缩放操作。 #### 安装依赖包 如果尚未安装Pillow库,则可以通过pip命令来进行安装: ```bash pip install pillow ``` #### 缩放单张图像 对于单一图像文件的操作如下所示: ```python from PIL import Image def resize_image(input_path, output_path, size): with Image.open(input_path) as img: resized_img = img.resize(size, Image.ANTIALIAS) resized_img.save(output_path) resize_image('input.jpg', 'output_resized.jpg', (800, 600)) ``` 这段代码定义了一个函数`resize_image()`用于接收输入路径、输出路径以及目标尺寸作为参数[^2]。它会打开指定位置上的原始图片,在调整其大小到给定的新宽度和高度之后再保存下来。这里还指定了插值方法为`Image.ANTIALIAS`以获得更好的质量。 #### 批量缩放多张图像 当面对多个待处理的图像时,可创建循环遍历目录下的所有文件并依次调用上述函数执行转换任务: ```python import os from PIL import Image def batch_resize_images(input_folder, output_folder, new_size=(800, 600)): if not os.path.exists(output_folder): os.makedirs(output_folder) for filename in os.listdir(input_folder): if filename.lower().endswith(('.png', '.jpg', '.jpeg')): input_path = os.path.join(input_folder, filename) output_path = os.path.join(output_folder, filename) try: with Image.open(input_path) as img: resized_img = img.resize(new_size, Image.ANTIALIAS) resized_img.save(output_path) print(f'Successfully resized {filename}') except Exception as e: print(f'Failed to process file {filename}: {e}') batch_resize_images('./images/input/', './images/output/') ``` 此段程序能够一次性处理整个文件夹内的所有支持格式的照片,并按照设定的目标尺寸重新生成它们于另一指定的位置中。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值