把一个图片或一个文件夹中的图片转为png。适用于(jpg、jpeg、gif、webp)四种格式
import osfrom PIL import Image
def convert_to_png(image_path):
# 打开图片
try:
with Image.open(image_path) as im:
# 判断是否为支持转换的格式
if im.format.lower() in ('gif', 'jpeg', 'jpg', 'webp'):
# 设置输出文件名
output_path = os.path.splitext(image_path) + ".png"
# 保存为PNG格式
im.save(output_path, format="PNG")
print(f"成功将图片 {image_path} 转换为 PNG 格式并保存为 {output_path}")
else:
print(f"不支持转换 {image_path} 的格式 ({im.format}) 至 PNG")
except IOError:
print(f"无法打开或转换图片 {image_path},可能不是有效的图片文件或存在其他问题")
# 批量转换目录下的所有支持图片格式为png
def batch_convert_to_png(directory):
if not os.path.isdir(directory):
print(f"{directory} 不是有效的目录路径")
return
for filename in os.listdir(directory):
if filename.endswith(('.gif', '.jpg', '.jpeg', '.webp')):
image_path = os.path.join(directory, filename)
convert_to_png(image_path)
batch_convert_to_png("D:/图片/")
'''
# 使用示例:
convert_to_png("D:/图片/a.webp")
convert_to_png("input.gif")
convert_to_png("input.jpg")
convert_to_png("input.jpeg")
convert_to_png("input.webp")# 新增:将 WebP 图片转为 PNG
# 批量转换示例:
batch_convert_to_png("D:/图片/")
'''
本帖最后由 zjg121 于 2024-3-28 18:27 编辑
merlin9527 发表于 2024-3-28 16:25
能把白色区域改成透明最好
研究一下,应该可以的。更新时再加上这个功能。
from PIL import Image
def convert_white_to_transparent(image_path, touming_path):
img = Image.open(image_path)
img = img.convert("RGBA")
datas = img.getdata()
new_data = []
for item in datas:
if item == 255 and item == 255 and item == 255:
new_data.append((255, 255, 255, 0))
else:
new_data.append(item)
img.putdata(new_data)
img.save(touming_path, "PNG")
convert_white_to_transparent("D:/图片/a.png", "D:/图片/透明a.png")
好久没看python代码,连基本的语法都看不太懂了……这个库我不了解,但你这个好像判断了两次文件类型吧 不错,有成品没 能把多张图片合成视频的有吗 abcttud 发表于 2024-3-28 16:55
能把多张图片合成视频的有吗
好好学习,慢慢进步。只有想不到的,没有做不到的。 有没有证件照去除背景保留主体的库 感谢大佬分享 HackYike 发表于 2024-3-28 19:30
好久没看python代码,连基本的语法都看不太懂了……这个库我不了解,但你这个好像判断了两次文件类型吧
两个函数:一个是对单文件的,一个是对文件夹的。 厉害了!{:1_921:}
页:
[1]
2