Формат пикселей для изображения всегда возвращает 32 бита

#c #visual-c

#c #visual-c

Вопрос:

Я пытаюсь получить разрядность изображений PNG в коде. Для этого я использую

Image ^image;
image->GetPixelFormatSize(image->PixelFormat);

который всегда возвращает 32, хотя мои изображения 8-разрядные, 24-разрядные и 32-разрядные. Я неправильно использую функцию? Спасибо.

Комментарии:

1. Вы имеете в виду эту функцию? Это неясно из вопроса и используемых тегов.

2. — и если да, то какое значение image->PixelFormat вы передаете?

3. Я имею в виду изображение, которое я создаю из файла Image::FromFile(file1->FullName) , А затем пытаюсь получить такие свойства, как ширина, высота и т.д., Которые являются правильными, но разрядность этого изображения с использованием image->PixelFormat печатает Format32bppArgb каждый раз. Я использую неправильную функцию? Какая была бы правильная функция для получения разрядности изображения?

4. image->PixelFormat сам по себе является пиксельным форматом изображения.

5. Как я могу получить разрядность изображения, а не формат пикселя, если это две разные вещи?

Ответ №1:

image->GetPixelFormatSize(изображение-> Формат пикселей); Возвращает глубину цвета в количестве бит на пиксель указанного формата пикселей. —

Ответ №2:

Хорошо, я разобрался. Я создавал растровое изображение из файла, который по умолчанию назначал ему 32 бита.