C++读取图片

时间:2025-05-06 09:19:29

C++读取图片

以C++风格(文件流)而不是C风格(FILE)读取图片。
补充:也可以使用opencv的cv::imread()函数读取图片,这个函数返回的是cv:Mat类型,在计算机视觉(CV)领域用的比较多。

使用到的头文件主要是fstream
参考链接

  • /reference/istream/istream/read/
  • /reference/string/string/string/
  • /reference/fstream/ifstream/

主要用到的函数

()
()
()

主要步骤

  1. 打开图片文件
  2. 计算图片长度
  3. 创建内存缓存区
  4. 读取图片

代码

#include <fstream> // ifstream, ifstream::in
using namespace std;

int main(){
	// 1. 打开图片文件
	// 评论区的 @霍鑫网络 帮忙发现一个隐藏的bug,在此表示感谢,已经修正
	ifstream is("", ifstream::in | ios::binary);
	// 2. 计算图片长度
	is.seekg(0, is.end);
	int length = is.tellg();
	is.seekg(0, is.beg);
	// 3. 创建内存缓存区
	char * buffer = new char[length];
	// 4. 读取图片
	is.read(buffer, length);
	// 到此,图片已经成功的被读取到内存(buffer)中
	delete [] buffer;
	// 感谢评论区 @geocat 帮忙发现的bug,已经修正
	is.close();
	return 0;
}