C语言获取图片二进制数据以及大小
时间: 2024-05-15 15:19:52 浏览: 164
要获取图片的二进制数据和大小,可以使用C语言的文件操作函数。
首先,使用fopen函数打开图片文件,并将文件指针赋值给一个FILE类型的变量:
```c
FILE *fp;
fp = fopen("image.jpg", "rb");
```
其中,"image.jpg"是图片文件的路径和文件名,"rb"表示以二进制模式读取文件。
接着,使用fseek函数将文件指针移动到文件末尾,使用ftell函数获取文件大小,再将文件指针移回文件开头:
```c
fseek(fp, 0, SEEK_END);
long size = ftell(fp);
fseek(fp, 0, SEEK_SET);
```
其中,ftell函数返回的是long类型的文件大小,单位是字节。
最后,使用fread函数从文件中读取数据,将数据存储到一个字符数组中:
```c
char data[size];
fread(data, 1, size, fp);
```
其中,第一个参数是存储数据的字符数组,第二个参数是每次读取的字节数,第三个参数是读取的总字节数,第四个参数是文件指针。
完整的代码如下:
```c
#include <stdio.h>
int main() {
FILE *fp;
fp = fopen("image.jpg", "rb");
if (fp == NULL) {
printf("File open failed!");
return -1;
}
fseek(fp, 0, SEEK_END);
long size = ftell(fp);
fseek(fp, 0, SEEK_SET);
char data[size];
fread(data, 1, size, fp);
fclose(fp);
return 0;
}
```
阅读全文