本文目录导读:

使用Python(跨平台、灵活)
需要安装 Pillow 库:
pip install Pillow
脚本 convert_to_png.py:
import os
from pathlib import Path
from PIL import Image
def batch_convert_to_png(input_dir, output_dir=None):
"""
批量转换图片为PNG格式
:param input_dir: 输入文件夹路径
:param output_dir: 输出文件夹路径(默认与输入相同)
"""
# 如果没指定输出目录,则使用输入目录
if output_dir is None:
output_dir = input_dir
# 确保输出目录存在
Path(output_dir).mkdir(parents=True, exist_ok=True)
# 支持的图片格式
supported_formats = ('.jpg', '.jpeg', '.png', '.bmp', '.gif', '.tiff', '.webp')
converted_count = 0
for filename in os.listdir(input_dir):
# 检查文件扩展名
if filename.lower().endswith(supported_formats):
input_path = os.path.join(input_dir, filename)
# 生成输出文件名(替换扩展名为.png)
output_filename = Path(filename).stem + '.png'
output_path = os.path.join(output_dir, output_filename)
try:
# 打开并转换图片
with Image.open(input_path) as img:
# 如果是RGBA模式(如PNG本身),保留之;否则转换为RGB
if img.mode == 'RGBA':
img.save(output_path, 'PNG')
else:
img.convert('RGBA').save(output_path, 'PNG')
converted_count += 1
print(f"✓ {filename} -> {output_filename}")
except Exception as e:
print(f"✗ 转换 {filename} 失败:{e}")
print(f"\n完成!共转换 {converted_count} 张图片。")
# 使用示例
if __name__ == "__main__":
# 替换为您的图片文件夹路径
input_folder = "./images" # 输入文件夹
output_folder = "./output_png" # 输出文件夹(可选)
batch_convert_to_png(input_folder, output_folder)
使用方法:
- 将脚本保存为
convert_to_png.py - 修改
input_folder和output_folder路径 - 运行:
python convert_to_png.py
使用ImageMagick(命令行,强大)
安装 ImageMagick:
- Windows: 下载安装包 https://imagemagick.org/script/download.php
- macOS:
brew install imagemagick - Linux:
sudo apt install imagemagick
批量转换命令(Windows):
@echo off
mkdir output_png 2>nul
for %%f in (*.jpg *.jpeg *.bmp *.gif *.tiff *.webp) do (
magick convert "%%f" "output_png\%%~nf.png"
echo 转换完成: %%f
)
pause
批量转换命令(Linux/macOS - Shell):
#!/bin/bash
mkdir -p output_png
for f in *.jpg *.jpeg *.bmp *.gif *.tiff *.webp; do
[ -f "$f" ] && magick convert "$f" "output_png/${f%.*}.png" && echo "转换完成: $f"
done
echo "全部转换完成!"
或使用更简洁的一行命令:
# Linux/macOS
mogrify -path output_png -format png *.jpg *.jpeg *.bmp
# Windows PowerShell
Get-ChildItem *.jpg,*.jpeg,*.bmp | ForEach-Object { magick convert $_.Name "output_png\$($_.BaseName).png" }
使用FFmpeg(视频帧转PNG)
如果您需要从视频中提取帧并转换为PNG:
# 提取所有帧 ffmpeg -i input.mp4 frames_%04d.png # 每秒提取1帧 ffmpeg -i input.mp4 -vf fps=1 frame_%04d.png
跨平台专用脚本(推荐,带进度条)
使用Python + tqdm(显示进度条):
pip install Pillow tqdm
import os
from pathlib import Path
from PIL import Image
from tqdm import tqdm
def batch_to_png(input_dir, output_dir=None):
output_dir = output_dir or input_dir
Path(output_dir).mkdir(parents=True, exist_ok=True)
files = [f for f in os.listdir(input_dir)
if f.lower().endswith(('.jpg', '.jpeg', '.png', '.bmp', '.gif', '.tiff', '.webp'))]
for file in tqdm(files, desc="转换进度"):
src = os.path.join(input_dir, file)
dst = os.path.join(output_dir, Path(file).stem + '.png')
try:
img = Image.open(src)
img.save(dst, 'PNG' if img.mode == 'RGBA' else img.convert('RGBA').save(dst, 'PNG'))
except Exception as e:
tqdm.write(f"错误: {file} - {e}")
# 使用
batch_to_png("./图片文件夹", "./输出文件夹")
注意事项:
- 保留透明度: 上述脚本会保留PNG自身的透明度,其他格式也会转换为RGBA模式。
- 覆盖风险: 如果原文件就是PNG,脚本会重新保存(通常无损)。
- 大文件处理: 对于超大图片(如几GB的TIFF),建议分批处理。
- 路径问题: 确保路径中没有特殊字符,Windows下注意反斜杠。
选择方法时,Python脚本最适合需要自定义逻辑的场景,ImageMagick适合纯命令行批量操作。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播