博客迁移后整理发型这篇文章当时没写完,不补了,不过还是得说明一些东西
下面这部分代码可用之处为从flac文件头开始然后各种形式的大跳,最后到达专辑封面的数据块,之后解析。
当时写的时候不会写图片解析部分,于是照搬了ShadowPlayer中某部分的代码,其有一特色为如果图片部分代码不认照样会爆搜然后尝试解析。实际上下面给出的代码的图片解析部分就是照搬的,而此处的正确做法恰恰不是如代码所示,我之前自己尝试能提取出图片的原因也就是爆搜成功了。。。
于是如果看官想要研究真正能用的代码,建议直接去看ShadowPlayer中此部分的代码。请参见这里。
下面是之前写的原文:
这是代码(代码中的注释以及为了检查运行状态的奇怪提示没删,需要的话手动删除):
/*
fLaC标签图片提取库 Ver 0.0
Gary 于2014/8/1 下午决定乱搞
*/
#ifndef _ShadowPowerOff_FLACPIC___
#define _ShadowPowerOff_FLACPIC___
#define _CRT_SECURE_NO_WARNINGS //安慰vs编译器用
#ifndef NULL
#define NULL 0
#endif
#include <cstdio>
#include <cstdlib>
#include <memory.h>
#include <cstring>
typedef unsigned char byte;
using namespace std;
namespace spFLAC {
//fLaC标签头部结构体定义
struct FLACHeader //似乎这就不用写成结构体咯,懒得改先用着
{
char identi[4];//fLaC头部校验&#