FILE *fp = fopen(path, "rb");
fseek(fp, 0, SEEK_END);
long size = ftell(fp);
fclose(fp);
//分配内存
unsigned char *jbuf = malloc(size); //可以用mmap
//读文件内容到内存
fread(jbuf, 1, size, fp);
fclose(fp);
tjhandle tj = tjInitDecompress();
int w = 0, h = 0, subsamp = 0, colorspace = 0;//拿到宽/高/采样(420/442/444)/色彩空间
tjDecompressHeader3(tj, jbuf, size, &w, &h, &subsamp, &colorspace);
/* ③ 一块输出缓冲 */
unsigned char *rgb = malloc((size_t)w * h * 4);/* 4字节/像素 */
/* ④ 全尺寸解码 */
tjDecompress2(tj, jbuf, size, rgb, w, 0, h, TJPF_RGBX, 0);//TJPF_RGBX会将YUV转成RGBX
/* ⑤ 缩放 */
tjDecompress2(tj, jbuf, size, rgb, w/2, 0, h/2, TJPF_RGBX, 0);//TJPF_RGB会将YUV转成RGB
tjDestroy(tj);
close(fd);
free(rgb);