Разница между форматами изображений RGB888 и ARGB8888

Я новичок в обработке изображений и разработке игр. Я следил за учебным пособием, в котором предлагается использовать фоновое изображение формата RGB888, а для спрайтов, кнопок и других значков для отдыха предлагается использовать формат ARGB8888.

Самое основное отличие состоит в том, что биты RGB888 составляют 24 бит, а ARGB8888 - 32 бит.

Итак, я хочу знать, какова реальная разница между этими двумя форматами и как они влияют на визуальное представление?

Ответ 1

Подробнее о цветовом пространстве на Wikipedia и дополнительной информации о растровых изображениях на Документация разработчиков Android. A показаны lpha, R ed, G reen и B. Альфа-канал обозначает уровень прозрачности на изображении. "8" в названии относится к числу бит на канал. Таким образом, RGB имеет 8 + 8 + 8 = 24 бит, а ARGB - 8 + 8 + 8 + 8 = 32 бит.

Рисование в RGB позволит вам выбрать цвет изображения для этого, RGB888 принимает альфа-значение 255. Добавление значения Alpha с помощью ARGB8888 позволит вам установить прозрачность самостоятельно с числом от 0 (полностью прозрачным) до 255 (полностью непрозрачным). Пример плохого добавления прозрачности в меню в Android будет выглядеть примерно так:

35AoN.png

Ответ 2

RGB888 - 24-разрядный, а не 8-битный. Оба указанных вами формата - 8 бит на канал, но один имеет три канала, а один - четыре.

Разница в том, что ARGB добавляет альфа-канал, который указывает непрозрачность для каждого пикселя. Как вы получаете полупрозрачные изображения.

RGB совпадает с ARGB с неявным предположением, что альфа-значение 255 или, другими словами, полностью непрозрачное.

Ответ 3

A - Альфа

R - красный

G - зеленый

B - синий

Разница в том, что ARGB добавляет альфа-канал, который указывает непрозрачность для каждого пикселя. Используя его, вы можете получить полупрозрачные изображения/наложения.

RGB888 - 24-разрядный, а не 8-битный. Он имеет три канала с 8 бит на канал,

ARGB8888  Он имеет четыре канала с 8 бит на канал.

Альфа-значение равно 0-255, где 0 полностью прозрачно и 255 полностью непрозрачно.

ARGB_8888 Документация говорит: Каждый пиксель хранится на 4 байта. Каждый канал (RGB и alpha для полупрозрачности) хранится с 8 битами точности (256 возможных значений). Эта конфигурация очень гибкая и обеспечивает лучшее качество. Его следует использовать, когда это возможно.