吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1838|回复: 6
上一主题 下一主题
收起左侧

[Python 原创] 一键更改图片分辨率大小

  [复制链接]
跳转到指定楼层
楼主
LIUHJV5 发表于 2025-6-26 15:15 回帖奖励
近期报名一些考试,发现要求各种格式,各种大小,结果我用ps修改之后,发现与我修改的还是不一致,于是就有了这个代码,可以更改图片分辨率大小


from PIL import Image
import os
import sys

def resize_image(input_path, output_path, width, height):
    """按照指定尺寸调整图片大小"""
    try:
        with Image.open(input_path) as img:
            # 确保输出目录存在
            output_dir = os.path.dirname(output_path)
            if output_dir and not os.path.exists(output_dir):
                os.makedirs(output_dir)

            # 调整图片大小并保存
            resized_img = img.resize((width, height), Image.LANCZOS)
            resized_img.save(output_path)
        return True
    except Exception as e:
        print(f"处理图片时出错: {e}")
        return False

def get_valid_file_path(prompt, default_ext='.jpg', valid_exts=None):
    """获取有效的文件路径,处理扩展名问题"""
    if valid_exts is None:
        valid_exts = ['.jpg', '.jpeg', '.png', '.gif', '.bmp']

    while True:
        path = input(prompt).strip()

        # 处理空输入
        if not path:
            print("错误: 路径不能为空")
            continue

        # 检查文件扩展名
        ext = os.path.splitext(path)[1].lower()
        if not ext:
            # 没有扩展名,添加默认扩展名
            path += default_ext
            print(f"未指定扩展名,默认使用 {default_ext}")
            return path
        elif ext in valid_exts:
            return path
        else:
            print(f"错误: 不支持的文件扩展名 '{ext}'")
            print(f"支持的扩展名: {', '.join(valid_exts)}")

def main():
    """程序主函数"""
    print("=== 图片尺寸调整工具 ===")

    # 获取输入图片路径
    input_path = get_valid_file_path("请输入要处理的图片路径: ")
    if not os.path.exists(input_path):
        print(f"错误: 文件 '{input_path}' 不存在")
        sys.exit(1)

    # 获取输出图片路径
    output_path = get_valid_file_path("请输入处理后图片的保存路径: ")

    # 获取目标尺寸
    while True:
        try:
            width = int(input("请输入目标宽度(像素): ").strip())
            height = int(input("请输入目标高度(像素): ").strip())
            if width <= 0 or height <= 0:
                print("错误: 宽度和高度必须是正整数")
                continue
            break
        except ValueError:
            print("错误: 宽度和高度必须是整数")

    # 调整图片大小
    if resize_image(input_path, output_path, width, height):
        print(f"图片已成功调整为 {width}x{height} 并保存至 {output_path}")
    else:
        print("图片调整失败")

if __name__ == "__main__":
    main()    

免费评分

参与人数 3吾爱币 +4 热心值 +3 收起 理由
苏紫方璇 + 3 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
boluobao + 1 谢谢@Thanks!
anning666 + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

推荐
snluwei 发表于 2025-6-26 21:44
记得ACDSee有批量更改图片尺寸的功能,很好用。
3#
那年我不帅 发表于 2025-6-26 16:23
4#
anning666 发表于 2025-6-26 16:35
5#
boluobao 发表于 2025-6-26 16:52
收藏一下,谢谢!
6#
于生 发表于 2025-6-26 19:05
麻烦楼主能封装一下吗?不封装不会用。。。
7#
outdo530 发表于 2025-7-1 07:35
有时需要,但有找半天,收藏了,谢谢
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - 52pojie.cn ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2026-2-27 11:25

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表