Дополнение в 24 битах rgb битовый массив

кто-то мог объяснить мне, почему в 24-разрядном rgb растровом файле я должен добавить дополнение, какой размер зависит от ширины изображения? Зачем?

Я подразумеваю, что должен добавить этот код к своей программе (в C):

 if( read % 4 != 0 ) {
   read = 4 - (read%4);
   printf( "Padding: %d bytes\n", read );
   fread( pixel, read, 1, inFile );
  }
10
задан Paul R 19 April 2016 в 21:05
поделиться

2 ответа

Поскольку 24 бита - это нечетное количество байтов (3) и по разным причинам все строки изображения должны начинаться с адреса, кратного 4 байтам.

7
ответ дан 3 December 2019 в 21:58
поделиться

От формата зависит, есть ли заполнение в конце каждой строки.

На самом деле нет особых причин для этого для изображений каналов 3 x 8 бит, поскольку ввод-вывод в любом случае ориентирован на байты. Для изображений с пикселями, упакованными менее чем в один байт (например, 1 бит / пиксель), полезно использовать заполнение, чтобы каждая строка начиналась со смещения в байтах.

1
ответ дан 3 December 2019 в 21:58
поделиться
Другие вопросы по тегам:

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