Files
dcalc/Tools/神话融合图标拼接.py
2024-11-04 14:45:20 +08:00

53 lines
1.4 KiB
Python

# Gif:导出图标所在
# Icon:需要合成的图标
# Top:特效所在文件夹,从1开始,后缀png
# Temp:临时文件夹
# 注意:ICON需要和TOP中的宽度、高度、位深度相同
from skimage import io
import shutil
import imageio
import os
import math
import numpy as np
# 线性减淡
def Linear_dodge(img_1, img_2):
img = img_1 + img_2
mask_2 = img > 1
img = img * (1 - mask_2) + mask_2
return img
def compose_gif(img_paths, fileName):
gif_images = []
for path in img_paths:
gif_images.append(imageio.imread(path))
# 间隔100毫秒
imageio.mimsave("Gif/" + fileName[:-4] + ".gif", gif_images, duration=0.1)
if not os.path.exists("Temp"):
os.mkdir("Temp")
Top_List = os.listdir("Top/")
for file in os.listdir("Icon"):
file_path = os.path.join("Icon/", file)
if not os.path.isdir(file_path):
img_2 = io.imread(file_path)
img_2 = img_2 / 255.0
img_paths = []
for i in range(1, len(Top_List)):
file_name = os.path.join("Top/", str(i) + '.png')
img_1 = io.imread(file_name)
img_1 = img_1 / 255.0
img = Linear_dodge(img_1, img_2)
io.imsave('Temp\\' + str(i) + '.png', img)
img_paths.append('Temp\\' + str(i) + '.png')
compose_gif(img_paths, file)
shutil.rmtree('Temp')
os.mkdir("Temp")