<p>您正在为每个随机选择加载每个地形图像。最好先预加载所有图像,然后简单地使用<code>random.choice()</code>为您选择一个图像,如下所示:</p>
<pre><code>from datetime import datetime
import random
from time import strftime
from PIL import Image
x_size = 4800
y_size = 4800
x_tile_size = 16
y_tile_size = 16
x_tile_amount = int(x_size/x_tile_size)
y_tile_amount = int(y_size/y_tile_size)
new_im = Image.new('RGB', (x_size, y_size))
file_path = './assets/terrain/plains/'
images = ['grass_1.png', 'grass_2.png', 'grass_3.png', 'grass_4.png', 'white_flower.png', 'red_flower.png', 'blue_flower.png']
terrain = [Image.open(os.path.join(file_path, image)) for image in images]
print("Generating map.")
start_time = strftime("%H:%M:%S")
for i in range(x_tile_amount):
for j in range(y_tile_amount):
old_im = random.choice(terrain)
new_im.paste(old_im, (i*x_tile_size,j*y_tile_size))
end_time = strftime("%H:%M:%S")
t_format = "%H:%M:%S"
t_delta = datetime.strptime(end_time, t_format) - datetime.strptime(start_time, t_format)
print('Time to generate map = ' + str(t_delta))
new_im.save('pillow_test.png', 'PNG')
</code></pre>
<p>这种方法应该给你一个巨大的速度</p>