Python :AVIF 图片与其他图片格式间的批量转换

  图片格式 AVIF转换为常见的格式,比如 JPGPNG。本文介绍如何使用 Pillow 库实现AVIF与其他格式的相互转换。


环境配置

使用 Python 环境管理工具 `conda` 和常用库 `Pillow` 来处理图片格式转换。环境的详细信息:
  • Conda: 24.7.1
  • Python: 3.8.19
  • Pillow: 10.4.0
  • pillow-avif-plugin: 1.4.6

安装步骤:

conda create -n yourenv python=3.8.19
conda activate yourenvpip install pillow pillow-avif-plugin

Pillow 支持的常见图片格式:

  • JPEG (jpg, jpeg)
  • PNG
  • GIF
  • BMP
  • TIFF
  • WEBP
  • 其他格式(部分格式需要插件支持,如 AVIF

可以在 Pillow 的官方文档中查看支持的文件格式
也可以通过代码查看:

from PIL import Image# 打印 Pillow 支持的文件格式
print(Image.registered_extensions())

1.将单个 AVIF 图片转换为 JPG 和 PNG

单张图片转换
将 `.avif` 图片转换为 `.jpg` 和 `.png` 格式。
import pillow_avif
from PIL import Image# 将 AVIF 转换为 JPG
def convert_avif_to_jpg(input_path, output_path):with Image.open(input_path) as img:# 将图像转换为 RGB 模式确保兼容性img = img.convert('RGB')img.save(output_path, 'JPEG')# 将 AVIF 转换为 PNG
def convert_avif_to_png(input_path, output_path):with Image.open(input_path) as img:img.save(output_path, 'PNG')# 使用示例
convert_avif_to_jpg('demo.avif', 'output.jpg')
convert_avif_to_png('demo.avif', 'output.png')

运行效果:


2.批量转换目录下所有 AVIF 图片为其他格式

遍历一个目录下的所有 `.avif` 图片,批量转换为常见格式如 `JPG` 或 `PNG`。
import os
from PIL import Image
import pillow_avifdef convert_avif(input_path, output_path, output_format='jpg'):# 打开AVIF图像with Image.open(input_path) as img:# 如果输出格式是JPG,需要先转换为RGB模式if output_format.lower() in ['jpg', 'jpeg']:img = img.convert('RGB')# 处理其他格式直接保存img.save(output_path, output_format.upper())def batch_convert_avif(input_directory, output_directory, output_format='jpg'):# 确保输出目录存在if not os.path.exists(output_directory):os.makedirs(output_directory)# 遍历输入目录中的所有文件for filename in os.listdir(input_directory):if filename.lower().endswith('.avif'):input_path = os.path.join(input_directory, filename)output_filename = os.path.splitext(filename)[0] + f'.{output_format}'output_path = os.path.join(output_directory, output_filename)try:# 调用通用转换函数,指定输出格式convert_avif(input_path, output_path, output_format)print(f'已成功转换: {filename} -> {output_format.upper()}')except Exception as e:print(f'转换失败: {filename} 错误: {str(e)}')# 使用示例:转换为PNG格式
batch_convert_avif('E:/software/test', 'E:/software/test', output_format='png')

运行效果:


3.将其他格式图片批量转换为 AVIF

将 `JPG` 或 `PNG` 等图片格式批量转换为 `AVIF`。
import os
from PIL import Image
import pillow_avifdef convert_to_avif(input_path, output_path):# 打开图片(支持JPG、PNG等格式)with Image.open(input_path) as img:# 如果不是RGBA或RGB模式,需要转换if img.mode not in ("RGBA", "RGB"):img = img.convert("RGBA")# 保存为AVIF格式img.save(output_path, "AVIF")def batch_convert_to_avif(input_directory, output_directory, supported_formats=('jpg', 'jpeg', 'png')):# 确保输出目录存在if not os.path.exists(output_directory):os.makedirs(output_directory)# 遍历输入目录中的所有文件for filename in os.listdir(input_directory):# 检查文件是否为支持的格式if filename.lower().endswith(supported_formats):input_path = os.path.join(input_directory, filename)# 修改输出文件扩展名为 .avifoutput_filename = os.path.splitext(filename)[0] + '.avif'output_path = os.path.join(output_directory, output_filename)try:# 将图片转换为AVIFconvert_to_avif(input_path, output_path)print(f'已成功转换: {filename} -> {output_filename}')except Exception as e:# 捕获并处理异常print(f'转换失败: {filename} 错误: {str(e)}')# 使用示例:将JPG、PNG批量转换为AVIF
batch_convert_to_avif('E:/software/test/avif', 'E:/software/test/avif')

运行效果:

希望这篇文章能帮助到你,如果有其他问题或建议,欢迎留言讨论!


刚刚好,看见你幸福的样子,于是幸福着你的幸福。 – 村上春树

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1548490.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【中级通信工程师】终端与业务(十):通信市场营销组合策略

【零基础3天通关中级通信工程师】 终端与业务(十):通信市场营销组合策略 本文是中级通信工程师考试《终端与业务》科目第十章《通信市场营销组合策略》的复习资料和真题汇总。本章的核心内容涵盖了市场营销组合策略的特点、产品策略、价格策略、渠道策略和促销策略…

【中级通信工程师】终端与业务(十一):市场营销计划、实施与控制

【零基础3天通关中级通信工程师】 终端与业务(十一):市场营销计划、实施与控制 本文是中级通信工程师考试《终端与业务》科目第十一章《市场营销计划、实施与控制》的复习资料和真题汇总。本章的核心内容涵盖了市场营销计划的编制、实施过程以及控制方式&#xff0…

“牛市“是要来了吗?股市热潮“挤爆“上交所,系统也懵了!

今天,这股市的火爆程度简直了!A股牛气冲天,直接把上交所的交易系统都给“挤爆”了,9月27号上午,网上炸开了锅,说上交所的交易系统居然卡壳了,买卖股票都成了难题,撤单也撤不掉。 网友…

周销量超BBA,稳居新势力榜首,理想汽车企稳发展新阶段

撰稿 | 多客 来源 | 贝多财经 理想汽车,离自己的理想又进了一步。 根据最新公布的2024年第38周(9月16日至22日)的中国汽车市场数据,理想汽车(NASDAQ:LI、HK:02015)的周销量继续领跑新势力品牌&#xff0…

每日论文6—16ISCAS一种新型低电流失配和变化电流转向电荷泵

《A Novel Current Steering Charge Pump with Low Current Mismatch and Variation》16ISCAS 本文首先介绍了传统的current steering charge pump,如下图: 比起最简单的电荷泵,主要好处是UP和DN开关离输出节点较远,因此一定程度…

【Java异常】(简简单单拿捏)

【Java异常】(简简单单拿捏) 1. 异常的简单介绍2. 异常的抛出2.1 语法 3. 异常的处理3.1 异常声明throws3.2 try-catch捕获并处理 4. 例子(try-catch自定义异常) 1. 异常的简单介绍 程序员在运行代码时会遇到很多异常&#xff0c…

T8:猫狗识别

T8周:猫狗识别 **一、前期工作**1.设置GPU,导入库2.导入数据3.查看数据 **二、数据预处理**1.加载数据2.可视化数据3.配置数据集 **三、构建CNN网络模型****四、编译模型****五、训练模型****六、模型评估****七、预测**八、总结1、[train_on_batch 和 test_on_batc…

ICAS英格尔认证闪耀2024汽车供应链降碳峰会,引领行业绿色发展新潮流

在推动全球绿色发展的大潮中,汽车供应链的降碳和可持续发展成为了行业内的热点议题。在这个关键时刻,《2024中国汽车供应链降碳和可持续国际峰会》在上海隆重举行,吸引了众多行业领袖和专家的目光。作为认证领域的佼佼者,ICAS英格…

THREE.JS法线Shader

以普通情况而论 vNormal normal;//...gl_FragColor vec4( vNormal, 1. );vNormal normal;//...gl_FragColor vec4( normalize( vNormal ) * 0.5 0.5, 1. );vNormal normalMatrix * normal;//...gl_FragColor vec4( normalize( vNormal ) * 0.5 0.5, 1. );normalMa…

从 0 到 1:互联网产品经理核心技能全解析

在互联网的浩瀚海洋中,产品经理如同领航员,决定着产品从无到有的走向和命运。从 0 到 1 打造一款互联网产品,需要产品经理具备多方面的核心技能。今天,我们就来详细解读这些关键能力。 一、洞察市场趋势 时刻关注行业动态 互联网…

征程6 上基于 DEB 工具实现包管理

1.引言 在开发、调测过程中,开发人员需要将系统软件、应用软件部署到 Soc 板端,以用于运行调试。传统的部署方式是通过解压复制或者调用部署脚本。这样的部署方式需要有着方式不统一、维护投入大的缺点。 在 linux 系统上,大多采用包管理的…

前端学习笔记-JS进阶篇-01

作用域&解构&箭头函数 1、作用域 作用域(scope)规定了变量能够被访问的“范围”,离开了这个“范围”变量便不能被访问 1.1、局部作用域 局部作用域分为函数作用域和块作用域 1.1.1、函数作用域 在函数内部声明的变量只能在函数…

PSO粒子群代码手搓实现—代码详解版python

PSO粒子群算法手搓实现版🚀 读了博士之后,送算法方向转到了控制方向,然后最近接触到的项目,要用到粒子群算法,然后秉持着我自己一贯的把基础代码自己手写一遍的原则,我自己上网找了一些视频,然后…

大型模型智能体:最先进的合作范式、安全与隐私以及未来趋势

摘要—大型模型智能体(LM agents),由如 GPT-4 和 DALL-E 2 等大型基础模型驱动,代表了实现人工通用智能(AGI)的重要一步。LM 智能体展示了自主性、具身性和连接性等关键特征,使其能够在物理、虚…

大豆重测序-文献精读53

Natural variation in GmSW17 controls seed size in soybean GmSW17的自然变异控制大豆种子的大小 摘要 种子大小/重量在决定作物产量中起着重要作用,但在大豆中,仅有少数控制种子大小的基因被鉴定出来。在本研究中,我们进行了全基因组关联…

人工智能中的RAG、Agent与Agentic RAG各有什么作用?

人工智能技术的迅猛发展正催生着各行业的变革与创新浪潮。在此背景下,检索增强生成(RAG)、人工智能代理(Agent),以及两者结合形成的新理念Agentic RAG成为了关注的热点。本文将详细探讨这三项技术的概念、原…

产销皆下行,造势口碑遭“反噬”,魏建军能否重振长城汽车?

今年以来,长城汽车可谓多次被打在舆论聚光灯下,既有“一把手”魏建军一反此前低调务实作风而在今年多次于公共场合慨慷激昂频出“金句”宏观层面的;也有旗下多款车型销量数据出现下滑的微观层面。 近日,长城汽车披露了2024年1-8月…

AI产品经理必知:核心人工智能技术概览

第一章:AI产品经理是否需要懂技术及其程度 在当今AI行业快速发展的背景下,作为一位AI产品经理,理解并掌握一定的AI技术知识不仅是锦上添花,更是不可或缺的素质。那么,AI产品经理究竟需要懂到何种程度的技术呢&#xf…

面试中如何做自我介绍

一般人在做自我介绍的时候,可能会存在的问题: 1、表述不太流畅。多练习表述,自己录音,听回放,有问题改正。 2、表述太溜,语速太快。不自信表现,隐含紧张的情绪。 3、面试官,大家好…

【MySQL】常见的SQL优化方式(一)

目录 1、插入数据 (1)批量插入 (2)手动提交事务 (3)主键顺序插入 2、主键优化 (1)页分裂 (2)页合并 3、order by 优化 (1)排…