首页 > 解决方案 > Python数组填充优化

问题描述

我有一个这样的颜色数组:

colors = [
            [50, 0, 255],  # Blue
            [255, 0, 0],    # Red
            [255, 0, 180],  # Pink
            [255, 140, 0],  # Orange
            [255, 255, 0],  # Jaune
            [0, 255, 255],  # Cyan
        ]

我有一个大像素数组:

pixels = [0] * width * height * 3

我想构建一个包含相同颜色的随机块的图像:

    for y in range(block_count_y):
        for x in range(block_count_x):
            color = random.choice(colors)

            for yp in range(block_height):
                for xp in range(block_width):
                    offset = (y * width * block_height + yp * width + x * block_width + xp) * 3
                    pixels[offset + 0] = color[0]
                    pixels[offset + 1] = color[1]
                    pixels[offset + 2] = color[2]

然后我必须用这个来获取字节像素:

bytes(pixels)

我的循环很慢。我正在寻找一种优化它的方法。

我已经尝试过 numpy 和列表​​理解,但它不起作用......

任何想法 ?

谢谢

标签: pythonnumpy

解决方案


推荐阅读