/** * @brief Read a PNG file. * * @param fname filename (with path, but may lack extension) * @param img pointer suitable to store the image data * * @return 0 (ok), -1 (color depth too low), -2 (not accessible), * -5 (#pngRead() error) or -8 (#convert_ARGB() error) */ int bpRead(const char *fname, guiImage *img) { int r; fname = fExist(fname); if (!fname) return -2; r = pngRead(fname, img); if (r != 0) { mp_msg(MSGT_GPLAYER, MSGL_DBG2, "[bitmap] read error #%d: %s\n", r, fname); return -5; } if (img->Bpp < 24) { mp_msg(MSGT_GPLAYER, MSGL_DBG2, "[bitmap] bpp too low: %u\n", img->Bpp); return -1; } if (!convert_ARGB(img)) return -8; return 0; }
int bpRead( char * fname, txSample * bf ) { fname=fExist( fname ); if ( fname == NULL ) return -2; if ( pngRead( fname,bf ) ) { mp_dbg( MSGT_GPLAYER,MSGL_FATAL,"[bitmap] unknown file type ( %s )\n",fname ); return -5; } if ( bf->BPP < 24 ) { mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[bitmap] Sorry, only 24 and 32 bpp bitmaps are supported.\n" ); return -1; } if ( conv24to32( bf ) ) return -8; #ifdef WORDS_BIGENDIAN swab(bf->Image, bf->Image, bf->ImageSize); #endif bgr2rgb( bf ); Normalize( bf ); return 0; }