Python оптимизация заполнения массива - PullRequest
0 голосов
/ 22 февраля 2020

У меня есть такой массив цветов:

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 и список понимания, но это не работает ...

Есть идеи?

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...