uint8_t* ImageDecoder::decodePNG(std::istream& str, uint32_t* width, uint32_t* height) { png_structp pngPtr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); if (!pngPtr) { LOG(LOG_ERROR,"Couldn't initialize png read struct"); return NULL; } png_set_read_fn(pngPtr,(void*)&str, ReadPNGDataFromStream); return decodePNGImpl(pngPtr, width, height); }
uint8_t* ImageDecoder::decodePNG(uint8_t* inData, int len, uint32_t* width, uint32_t* height, bool* hasAlpha) { png_structp pngPtr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); if (!pngPtr) { LOG(LOG_ERROR,"Couldn't initialize png read struct"); return NULL; } png_image_buffer b; b.data = inData; b.curpos = 0; png_set_read_fn(pngPtr,(void*)&b, ReadPNGDataFromBuffer); return decodePNGImpl(pngPtr, width, height,hasAlpha); }