Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 4972 → Rev 4973

/programs/develop/libraries/menuetlibc/src/libmgfx/load_image.c
0,0 → 1,62
#include"libmgfx.h"
 
int load_image(char * fname,mgfx_image_t ** the_img)
{
FILE * f;
struct mgfx_image_format * fmt;
mgfx_image_t * img;
int __ret;
if(!(img=(mgfx_image_t *)malloc(sizeof(mgfx_image_t))))
return _PICERR_NOMEM;
if(!(fmt=get_image_format(fname)))
return _PICERR_UNSUPPORTED;
f=fopen(fname,"rb");
if(!f) return _PICERR_NOFILE;
img->fmt=fmt;
__ret=fmt->load_fn(f,img);
if(__ret==_PIC_OK)
{
*the_img=img;
} else {
*the_img=NULL;
free(img);
}
fclose(f);
return __ret;
}
 
int load_image_f(char * fname,FILE * f,mgfx_image_t ** the_img)
{
struct mgfx_image_format * fmt;
mgfx_image_t * img;
int __ret;
if(!(img=(mgfx_image_t *)malloc(sizeof(mgfx_image_t))))
return _PICERR_NOMEM;
if(!(fmt=get_image_format(fname)))
return _PICERR_UNSUPPORTED;
img->fmt=fmt;
__ret=fmt->load_fn(f,img);
if(__ret==_PIC_OK)
{
*the_img=img;
} else {
*the_img=NULL;
free(img);
}
fclose(f);
return __ret;
}
 
void free_image(mgfx_image_t * img)
{
if(img)
{
free(img->the_image);
}
}
 
void paint_image(int x,int y,mgfx_image_t * img)
{
if(!img || img->bpp!=24) return;
__menuet__putimage(x,y,img->width,img->height,img->the_image);
}