При загрузке одноцветного изображения png_get_rows() возвращает указатель только на один цвет. ⇐ C++
-
Anonymous
При загрузке одноцветного изображения png_get_rows() возвращает указатель только на один цвет.
При загрузке одноцветного изображения 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
При загрузке одноцветного изображения 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
Мобильная версия