我正在为游戏设置一个Wiki,我需要添加GIF,以使网站更易于理解。但是我有一个问题。要制作GIF,我需要合并一些图像,我是逐个图像手动进行的,这很烦人。那么我可以使用哪种语言来自动化呢?
我已经用python尝试了一些代码,但没有成功。使它起作用的唯一方法是使用Photoshop组合这些图像。
我尝试了以下代码:
import numpy as np
from PIL import Image
images_list = []
for i in range(1,4): #insert last number of photo
images_list.append(str(i)+'.PNG')
count = 1;
directory = "C:/Users/Windows/Desktop/BloodStoneSprites/sprites1"
#change to directory where your photos are
ext = ".PNG"
new_file_name = "vimage-"
new_directory = "C:/Users/Windows/Desktop/BloodStoneSprites/Uniao" #
change to path of new directory where you want your photos to be saved
for j in range(0,len(images_list),2):
name = new_file_name + str(j) + ext
two_images_list = [images_list[j],images_list[j+1]]
imgs = [ Image.open(i) for i in two_images_list ]
min_img_shape = sorted( [(np.sum(i.size), i.size ) for i in imgs])[0][1]
imgs_comb = np.hstack( (np.asarray( i.resize(min_img_shape) ) for i in
imgs ) )
imgs_comb = Image.fromarray( imgs_comb)
imgs_comb.save(new_directory+'/'+name )
count +=1
这是我需要组合的一些图像: https://imgur.com/a/BBNGjuf
答案 0 :(得分:0)
The PIL library hasn't been maintained。 "Pillow"也标识为PIL
,请检查其是否正确安装。
如评论中所述,您的问题尚不完全清楚。就是说,您似乎正在尝试编写如下内容:
import numpy as np
from PIL import Image
images_names = [
"C:/Users/Windows/Desktop/BloodStoneSprites/sprites1/{0!s}.PNG".format(i)
for i in range(1,4)
]
images = [Image.open(file_name) for file_name in images_names]
new_name_scheme = "C:/Users/Windows/Desktop/BloodStoneSprites/Uniao/vimage-{0!s}.PNG"
for j in range(0,len(images),2):
two_images_list = [images[j],images[j+1]]
min_img_shape = sorted( [(np.sum(i.size), i.size ) for i in two_images_list] )[0][1]
imgs_comb = Image.fromarray(
np.hstack((
np.asarray(i.resize(min_img_shape))
for i in two_images_list
)))
imgs_comb.save(new_name_scheme.format(j))
我不保证上述操作会成功运行;您需要进行处理。
最重要的更改是删除或展平了很多变量,并添加了for
循环正常工作所需的缩进。
您会注意到,我使用的是'str'.format(arg)
语法。 'str' % (arg)
也可以正常工作。