Содержание

ImageID_GetIndirect

синтаксис

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);

см. также

ImageID_Get, ImageID_Free