int ImageID_GetIndirect(void * buf_image, int size, int __NULL, wchar_t * image_type, wchar_t * imageID);
функция формирует imageID
для картинки находящейся в буфере. Данный imageID
в дальнейшем можно использовать для вывода графики на экран.
После создания imageID
буфер освобождать не нужно, он освободится вместе с imageID
.
После окончания использования необходимо освобождать imageID
при помощи ImageID_Free.
buf_image - буфер содержащий картинку, для которой необходимо создать imageID
size - размер картинки, находящейся в буфере (в байтах)
__NULL - 0
image_type - указатель на строку с типом картинки, находящейся в буфере (jpg, gif, png, bmp)
imageID - сюда будет положен imageID
0 - функция выполнена успешно
не 0 - произошла ошибка во время выполнения функции
int f; char cover_type; int size; int cover_offset; wchar_t imageID; wchar_t cover_ext[4]; imageID=NOIMAGE; void * MetaData_Desc = MetaData_Desc_Create(L"/card/music",L"audio.mp3"); if (MetaData_Desc_GetCoverInfo(MetaData_Desc,&cover_type,&size,&cover_offset)) { if (cover_type<=3) { switch(cover_type) { case 0: wstrcpy(cover_ext,L"jpg"); break; case 1: wstrcpy(cover_ext,L"gif"); break; case 2: wstrcpy(cover_ext,L"png"); break; case 3: wstrcpy(cover_ext,L"bmp"); break; } if (f=_fopen(L"/card/music",L"audio.mp3",0x1,0x180,0x0)>=0) { if (lseek(f,cover_offset,0)>=0) { char * my_buf=new char[size]; fread(f,my_buf,size); ImageID_GetIndirect(my_buf,size,0,cover_ext,&imageID); } fclose(f); } } } ...... MetaData_Desc_Destroy(MetaData_Desc);