1 简介
libjpeg一个图片解码库,在项目中需要读入图片,但不想依赖opencv的接口,这时可以libjpeg完成解码。libjpeg有两个版本,一个时原装的libjpeg,另一个则是libjpeg-turbo,这是一个使用 SIMD指令加速的解码库,大约是libjpeg的3倍的速度,代码参见 https://github.com/libjpeg-turbo/libjpeg-turbo
2 编译
- 下载源代码,cmake,nasm 参考(https://github.com/libjpeg-turbo/libjpeg-turbo/blob/master/BUILDING.md)
3代码
struct JPEGINFO {
unsigned int width;
unsigned int height;
ColorType colortype;
unsigned char* dstImg;
};
/*
* 输入图片名,输出unsigned char*图片数据
*
*/
int readjpeg(std::string file_name,
JPEGINFO &jpeginfo)
{
struct jpeg_decompress_struct cinfo;
struct my_error_mgr jerr;
FILE * infile;
JSAMPARRAY buffer;
int row_stride;
errno_t err;
if ((