При загрузке одноцветного изображения png_get_rows() возвращает указатель только на один цвет.C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 При загрузке одноцветного изображения png_get_rows() возвращает указатель только на один цвет.

Сообщение Anonymous »


При загрузке одноцветного изображения png_get_rows() возвращает указатель только на один цвет. A должен возвращать указатель на цвета всех пикселей, даже если они одинаковы. Как я могу это сделать или проверить, что изображение одноцветное? Мне нужна именно такая логика
Строковый путь = PathHelper::GetAssetsPath(); путь += имя; // белый.png png_uint_32 ширина, высота; png_structp pngStruct{}; png_infop pngInfo{}; ФАЙЛ* файл = 0; беззнаковый символ* данные = 0; файл = fopen(путь, "rb"); FOG_ASSERT(файл!= 0); pngStruct = png_create_read_struct(PNG_LIBPNG_VER_STRING, 0, 0, 0); FOG_ASSERT(pngStruct!= 0); pngInfo = png_create_info_struct(pngStruct); FOG_ASSERT(pngInfo!= 0); если (setjmp(png_jmpbuf(pngStruct))) { png_destroy_read_struct(&pngStruct, &pngInfo, 0); fзакрыть (файл); FOG_ASSERT(ложь); } png_init_io (pngStruct, файл); интервал numBytes = 0; png_set_sig_bytes(pngStruct, numBytes); png_read_png(pngStruct, pngInfo, PNG_TRANSFORM_STRIP_16 | PNG_TRANSFORM_PACKING | PNG_TRANSFORM_EXPAND, NULL); png_get_IHDR(pngStruct, pngInfo, &width, &height, 0, 0, 0, 0, 0); size_t row_bytes = png_get_rowbytes(pngStruct, pngInfo); данные = новый беззнаковый символ [row_bytes * высота]; png_bytepp row_pointers = png_get_rows(pngStruct, pngInfo); // возвращаем 0xFF
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»