用id3lib提取mp3文件中的图片信息的实例

//define


typedef struct
    {
     unsigned char* picture;
     size_t *len;

   }PICTURE;

 PICTURE *m_p = NULL;

//function's implemation
PICTURE* CMpExtractInfo::getPicture()
{
     if(m_p!=NULL)
     {
        delete [] m_p;
        cout<<"******************delete m_p"<<endl;
        m_p = NULL;
     }


    if(&m_tag==NULL)
    {
       return NULL;
    }
     
    else
    {         
            m_p = new PICTURE;
            ID3_Frame *tp_frame =m_tag.Find(ID3FID_PICTURE);
        if (NULL != tp_frame)
            {
               qDebug()<<"getpicture here";
           //tp_frame->Field(ID3FN_DATA).ToFile("output.bmp");
               ID3_Field & tmp = tp_frame->Field(ID3FN_DATA);
               m_p->len = new size_t(0);
               *(m_p->len) = tp_frame->GetDataSize();
           cout << " Len : " << *(m_p->len) << endl;
               m_p->picture = new unsigned char[*(m_p->len) + 1];                   //error here
               memset(m_p->picture,0,*(m_p->len) + 1);
           tmp.Get(m_p->picture, *(m_p->len) + 1);       
               return m_p;
           }

    }
}



reference size : www.id3.org
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值