C++ C++;用于获取JPEG图像大小的库
你知道有什么好的图像库可以在内存中获取JPEG图像的大小吗?我只需要得到图像的大小。如果可能的话,我希望它只是标题。C++ C++;用于获取JPEG图像大小的库,c++,c,jpeg,C++,C,Jpeg,你知道有什么好的图像库可以在内存中获取JPEG图像的大小吗?我只需要得到图像的大小。如果可能的话,我希望它只是标题。 如果我记得清楚的话,似乎boost::gil需要一个第三方库(libjpeg)。使用以下代码,我们可以验证给定的文件是jpeg图像文件,也可以获得图像大小 int width, height; FILE *image; int size, i = 0; unsigned char *data; image =fopen("file_name","rb"); // open J
如果我记得清楚的话,似乎boost::gil需要一个第三方库(libjpeg)。使用以下代码,我们可以验证给定的文件是jpeg图像文件,也可以获得图像大小
int width, height;
FILE *image;
int size, i = 0;
unsigned char *data;
image =fopen("file_name","rb"); // open JPEG image file
if(!image){
printf("Unable to open image \n");
}
fseek(image, 0, SEEK_END);
size = ftell(image);
fseek(image, 0, SEEK_SET);
data = (unsigned char *)malloc(size);
fread(data, 1, size, image);
/* verify valid JPEG header */
if(data[i] == 0xFF && data[i + 1] == 0xD8 && data[i + 2] == 0xFF && data[i + 3] == 0xE0) {
i += 4;
/* Check for null terminated JFIF */
if(data[i + 2] == 'J' && data[i + 3] == 'F' && data[i + 4] == 'I' && data[i + 5] == 'F' && data[i + 6] == 0x00) {
while(i < size) {
i++;
if(data[i] == 0xFF){
if(data[i+1] == 0xC0) {
height = data[i + 5]*256 + data[i + 6];
width = data[i + 7]*256 + data[i + 8];
break;
}
}
}
}
}
fclose(image);
int宽度、高度;
文件*图像;
整数大小,i=0;
无符号字符*数据;
image=fopen(“文件名”、“rb”);//打开JPEG图像文件
如果(!图像){
printf(“无法打开图像\n”);
}
fseek(图像,0,搜索结束);
大小=ftell(图像);
fseek(图像,0,搜索集);
数据=(无符号字符*)malloc(大小);
fread(数据,1,大小,图像);
/*验证有效的JPEG头*/
如果(数据[i]==0xFF&&data[i+1]==0xD8&&data[i+2]==0xFF&&data[i+3]==0xE0){
i+=4;
/*检查以null结尾的JFIF*/
如果(数据[i+2]='J'和数据[i+3]='F'和数据[i+4]='i'和数据[i+5]='F'和数据[i+6]==0x00){
而(i
使用以下代码,我们可以验证给定文件是否为jpeg图像文件,还可以获得图像大小
int width, height;
FILE *image;
int size, i = 0;
unsigned char *data;
image =fopen("file_name","rb"); // open JPEG image file
if(!image){
printf("Unable to open image \n");
}
fseek(image, 0, SEEK_END);
size = ftell(image);
fseek(image, 0, SEEK_SET);
data = (unsigned char *)malloc(size);
fread(data, 1, size, image);
/* verify valid JPEG header */
if(data[i] == 0xFF && data[i + 1] == 0xD8 && data[i + 2] == 0xFF && data[i + 3] == 0xE0) {
i += 4;
/* Check for null terminated JFIF */
if(data[i + 2] == 'J' && data[i + 3] == 'F' && data[i + 4] == 'I' && data[i + 5] == 'F' && data[i + 6] == 0x00) {
while(i < size) {
i++;
if(data[i] == 0xFF){
if(data[i+1] == 0xC0) {
height = data[i + 5]*256 + data[i + 6];
width = data[i + 7]*256 + data[i + 8];
break;
}
}
}
}
}
fclose(image);
int宽度、高度;
文件*图像;
整数大小,i=0;
无符号字符*数据;
image=fopen(“文件名”、“rb”);//打开JPEG图像文件
如果(!图像){
printf(“无法打开图像\n”);
}
fseek(图像,0,搜索结束);
大小=ftell(图像);
fseek(图像,0,搜索集);
数据=(无符号字符*)malloc(大小);
fread(数据,1,大小,图像);
/*验证有效的JPEG头*/
如果(数据[i]==0xFF&&data[i+1]==0xD8&&data[i+2]==0xFF&&data[i+3]==0xE0){
i+=4;
/*检查以null结尾的JFIF*/
如果(数据[i+2]='J'和数据[i+3]='F'和数据[i+4]='i'和数据[i+5]='F'和数据[i+6]==0x00){
而(i
boost::gil仅为页眉,根据其@diw编号,boost::gil仅为页眉,根据其@diw编号,