jpeglib如何判断图片不是jpeg格式返回false的函数,有没有?
时间: 2024-02-23 21:02:05 浏览: 88
jpeglib中提供了一个函数`jpeg_start_decompress()`,用于启动jpeg解压缩过程。如果这个函数返回false,则说明该图片不是一个合法的jpeg格式。因此,可以通过以下代码来判断图片是否为jpeg格式:
```c++
#include <stdio.h>
#include <stdlib.h>
#include <jpeglib.h>
bool isJPEG(const char* filename) {
FILE* fp = fopen(filename, "rb");
if (!fp) {
return false;
}
struct jpeg_decompress_struct cinfo;
struct jpeg_error_mgr jerr;
cinfo.err = jpeg_std_error(&jerr);
jpeg_create_decompress(&cinfo);
jpeg_stdio_src(&cinfo, fp);
bool ret = (jpeg_read_header(&cinfo, TRUE) == JPEG_HEADER_OK);
fclose(fp);
jpeg_destroy_decompress(&cinfo);
return ret;
}
```
这个函数接受一个文件名作为参数,如果文件存在且为一个合法的jpeg格式,则返回true;否则返回false。
阅读全文