python图片按照比例缩放

在Python中,你可以使用多种库来按照比例缩放图片。其中,PIL(Python Imaging Library)的分支Pillow是一个非常流行和强大的图像处理库。以下是一个使用Pillow库按照比例缩放图片的示例:

  1. 安装Pillow库

    如果还没有安装Pillow,你可以使用以下命令进行安装:

    bash 复制代码
    pip install pillow
  2. 编写Python代码进行图片缩放

    下面是一个示例代码,用于读取图片并按照指定比例进行缩放:

    python 复制代码
    from PIL import Image
    
    def resize_image(input_path, output_path, scale_factor):
        """
        按照比例缩放图片
    
        :param input_path: 输入图片路径
        :param output_path: 输出图片路径
        :param scale_factor: 缩放比例因子 (例如,0.5 表示缩小到原来的50%)
        """
        with Image.open(input_path) as img:
            # 获取原始尺寸
            width, height = img.size
            # 计算新的尺寸
            new_width = int(width * scale_factor)
            new_height = int(height * scale_factor)
            # 缩放图片
            resized_img = img.resize((new_width, new_height), Image.ANTIALIAS)
            # 保存缩放后的图片
            resized_img.save(output_path)
            print(f"图片已保存到 {output_path}")
    
    # 示例使用
    input_image_path = 'input.jpg'  # 输入图片路径
    output_image_path = 'output.jpg'  # 输出图片路径
    scale = 0.5  # 缩放比例因子
    
    resize_image(input_image_path, output_image_path, scale)

在这个示例中:

  • input_path 是输入图片的路径。
  • output_path 是缩放后图片要保存的路径。
  • scale_factor 是缩放比例因子,比如0.5表示缩小到原来的50%,2表示放大到原来的200%。

Image.ANTIALIAS 是一种高质量的重采样滤波器,用于在缩放图片时保持较好的图像质量。你也可以根据需要选择其他滤波器,比如 Image.NEARESTImage.BILINEARImage.BICUBIC 等。

这个代码段将读取指定的输入图片,按照给定的比例因子进行缩放,并将结果保存到指定的输出路径。

相关推荐
花酒锄作田1 小时前
[python]argparse 包在聊天机器人中的应用
python
NiceCloud喜云3 小时前
Opus 4.8 的 Effort Control 怎么选:Low 到 Max 五档策略
android·java·大数据·前端·c++·python·spring
AI玫瑰助手4 小时前
Python函数:默认参数的定义与注意事项
开发语言·python·信息可视化
好评笔记4 小时前
机器学习面试八股——常用损失函数
人工智能·深度学习·算法·机器学习·校招
weixin_468466854 小时前
全局与局部注意力机制新手实战指南
人工智能·python·深度学习·算法·自然语言处理·transformer·注意力机制
油炸自行车4 小时前
Claude Code 错误:API Error: 400 Failed to deserialize the JSON body into the
开发语言·javascript·json·trae·claude code·api error 400
肩上风骋4 小时前
C++14特性
开发语言·c++·c++14特性
小糖学代码4 小时前
LLM系列:环境搭建:5.Python-dotenv 环境变量管理
人工智能·python·深度学习·神经网络
智慧物业老杨4 小时前
智慧物业合同周期管理系统:从风险预警到智能交接的全流程数智化落地方案
java·人工智能·python
橙橙笔记5 小时前
Python的学习第一部分
python·学习