stakanmartini
@stakanmartini
инженер-программист

Чем сконвертировать картинку в формат bmp565 на Python?

Дано:
Что нужно: получить bytearray, где каждый пиксель закодирован с помощью 2-х байт (в формате bmp565)
rgb565.gif

Думаю, что достаточно найти решение хотя бы по одному пункту:
  • графический редактор, который сохраняет в rgb565
  • функция для конвертирования изображений побайтно из любого формата в rgb565
  • способ конвертнуть с помощью Pillow в rgb565 или другая библиотека способная на это
  • Вопрос задан
  • 593 просмотра
Решения вопроса 1
@nirvimel
Мой вариант:
from PIL import Image
import numpy


def get_rgb565_bytes_from_image(filename):
    rgb888 = numpy.asarray(Image.open(filename))
    # check that image have 3 color components, each of 8 bits
    assert rgb888.shape[-1] == 3 and rgb888.dtype == numpy.uint8
    r5 = (rgb888[..., 0] >> 3 & 0x1f).astype(numpy.uint16)
    g6 = (rgb888[..., 1] >> 2 & 0x3f).astype(numpy.uint16)
    b5 = (rgb888[..., 2] >> 3 & 0x1f).astype(numpy.uint16)
    rgb565 = r5 << 11 | g6 << 5 | b5
    return rgb565.tobytes()
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы