Разница между форматами изображений 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 возможных значений). Эта конфигурация очень гибкая и обеспечивает лучшее качество. Его следует использовать, когда это возможно.