38 lines
1.3 KiB
Python
38 lines
1.3 KiB
Python
# -*- coding: utf-8 -*-
|
||
# @Time : 2024/2/8 19:15
|
||
# @Author : len
|
||
# @File : 000_png_to_bmp.py
|
||
# @Software: PyCharm
|
||
# @Comment :
|
||
|
||
import os
|
||
from PIL import Image
|
||
|
||
# 定义PNG图片所在的文件夹路径
|
||
png_images_folder = r'D:\Code\Python\Embedded_game\模块一\img'
|
||
# 定义BMP图片保存的文件夹路径
|
||
bmp_images_folder = r'D:\Code\Python\Embedded_game\模块一\img_old'
|
||
|
||
# 确保BMP保存的文件夹存在
|
||
os.makedirs(bmp_images_folder, exist_ok=True)
|
||
|
||
# 获取该文件夹内所有PNG文件的路径
|
||
png_files = [os.path.join(png_images_folder, f) for f in os.listdir(png_images_folder) if f.endswith('.png')]
|
||
|
||
# 为每个PNG文件创建一个对应的BMP文件路径
|
||
bmp_files = [os.path.join(bmp_images_folder, os.path.basename(f).replace('.png', '.bmp')) for f in png_files]
|
||
|
||
# 批量转换PNG到BMP
|
||
for png, bmp in zip(png_files, bmp_files):
|
||
with Image.open(png) as img:
|
||
# 如果PNG图片有alpha通道,移除它
|
||
if 'A' in img.getbands():
|
||
# 创建一个白色背景的Image对象
|
||
bg = Image.new("RGB", img.size, (255, 255, 255))
|
||
# 粘贴原始图像到背景上,忽略alpha通道
|
||
bg.paste(img, mask=img.split()[3])
|
||
img = bg
|
||
img.save(bmp, 'BMP')
|
||
print(f"图片 '{png}' 已转换为BMP格式,并保存为 '{bmp}'")
|
||
|