avatar

RWO.cc

读一次写一次

  • 首页
  • 搭建手册
  • 笔记
  • 短视频
  • 关于
  • 🌈200粉丝🌈
Home Python 图片格式转换
文章

Python 图片格式转换

Posted 2024-10-21 Updated 2024-10- 19
By RWO.
7~9 min read

在 Python 中,进行图片格式转换可以使用 Pillow 库(PIL)。Pillow 是 Python Imaging Library(PIL)的一个友好分支。以下是如何使用 Pillow 库进行图片格式转换的详细步骤。

Pillow 菜鸟鸭教程
Pillow 中文文档

安装 Pillow

如果还没有安装 Pillow,可以使用 pip 命令来安装:

pip install pillow

使用 Pillow 进行图片格式转换

以下是一个示例,展示如何使用 Pillow 将 JPEG 格式的图片转换为 PNG 格式。

示例:JPEG 转 PNG

from PIL import Image

def convert_image(input_path, output_path):
    # 打开图片
    with Image.open(input_path) as img:
        # 保存为新的格式
        img.save(output_path)

# 示例调用
convert_image('input.jpg', 'output.png')

在这个示例中,input.jpg 是输入的 JPEG 格式图片,output.png 是输出的 PNG 格式图片。

示例:任意格式转换

可以将图片转换为任意格式,只需更改输出文件的扩展名。例如,将 PNG 转换为 BMP:

from PIL import Image

def convert_image(input_path, output_path):
    # 打开图片
    with Image.open(input_path) as img:
        # 保存为新的格式
        img.save(output_path)

# 示例调用
convert_image('input.png', 'output.bmp')

批量图片格式转换

如果需要批量转换文件夹中的图片格式,可以使用以下示例:

import os
from PIL import Image

def batch_convert_images(input_directory, output_directory, target_format):
    if not os.path.exists(output_directory):
        os.makedirs(output_directory)

    for filename in os.listdir(input_directory):
        if filename.endswith(('.jpg', '.jpeg', '.png', '.bmp', '.gif')):
            input_path = os.path.join(input_directory, filename)
            output_filename = os.path.splitext(filename)[0] + '.' + target_format
            output_path = os.path.join(output_directory, output_filename)

            try:
                with Image.open(input_path) as img:
                    img.save(output_path)
                print(f"{input_path} 已转换为 {output_path}")
            except Exception as e:
                print(f"转换 {input_path} 时发生错误: {e}")

# 示例调用
batch_convert_images('input_directory', 'output_directory', 'png')

在这个示例中,input_directory 是包含要转换图片的文件夹,output_directory 是保存转换后图片的文件夹,target_format 是目标图片格式。

高级选项

保持图片质量

在保存图片时,可以指定图片质量参数。例如,保存 JPEG 格式时,可以设置质量参数:

from PIL import Image

def convert_image(input_path, output_path, quality=85):
    # 打开图片
    with Image.open(input_path) as img:
        # 保存为新的格式并指定质量
        img.save(output_path, quality=quality)

# 示例调用
convert_image('input.jpg', 'output.jpg', quality=90)

转换为灰度图像

在转换图片格式时,也可以将图片转换为灰度图像:

from PIL import Image

def convert_to_grayscale(input_path, output_path):
    # 打开图片
    with Image.open(input_path) as img:
        # 转换为灰度图像
        grayscale_img = img.convert('L')
        # 保存为新的格式
        grayscale_img.save(output_path)

# 示例调用
convert_to_grayscale('input.jpg', 'output.png')

总结

使用 Pillow 库,Python 可以轻松实现图片格式的转换。无论是单张图片的格式转换,还是批量转换文件夹中的图片格式,Pillow 都提供了丰富的功能和灵活的接口。通过合理使用这些功能,可以大大提高图像处理的效率和效果。

短视频
每日一点 短视频 Python
License:  CC BY 4.0
Share

Further Reading

Nov 3, 2024

什么是 python 的闭包

在 Python 中,闭包(Closure)是一种函数对象,它不仅包含了函数的代码,还包含了函数创建时的环境变量。这意味着闭包可以“记住”其外部作用域中的变量,即使在外部作用域已经结束后,闭包仍然可以访问这些变量。 函数可以访问他被创建时所处的上下文环境,这被称为闭包。 闭包的基本特征 嵌套函数:闭

Nov 2, 2024

使用argparse模块解析命令行参数

在 Python 中,argparse 模块用于解析命令行参数,使得脚本可以更灵活地接受用户输入。以下是如何使用 argparse 模块解析命令行参数的详细介绍和示例。 基本用法 示例:简单的命令行参数解析 首先,创建一个简单的脚本来解析命令行参数。我们将创建一个脚本,该脚本接受两个整数并打印它们的

Nov 1, 2024

Python中的二维码生成与解析(花里胡哨)

如何使用 qrcode 库生成各种有趣的二维码,包括彩色二维码、带 Logo 的二维码和动态 GIF 二维码。下面,我们将逐步介绍这些功能。 Qrcode 库简介 qrcode 库是一个强大的 Python 工具,用于生成二维码。除了基本的二维码,它还支持自定义功能,如颜色变化、样式设计和动画效果。

OLDER

Python 文件批量重命名

NEWER

检查路径是否存在

Recently Updated

  • 什么是 python 的闭包
  • 使用argparse模块解析命令行参数
  • Python中的二维码生成与解析(花里胡哨)
  • Python中的二维码生成与解析(基础使用)
  • 使用platform模块获取系统信息

Trending Tags

学习 Git 工具 SQL docker-compose 每日一点 快捷键 Flink fastapi Windows

Contents

©2025 RWO.cc. Some rights reserved.

Using the Halo theme Chirpy