Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/147.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;用于获取JPEG图像大小的库_C++_C_Jpeg - Fatal编程技术网

C++ C++;用于获取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

你知道有什么好的图像库可以在内存中获取JPEG图像的大小吗?我只需要得到图像的大小。如果可能的话,我希望它只是标题。
如果我记得清楚的话,似乎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编号,