C++读取图片

18 篇文章 0 订阅
17 篇文章 1 订阅

C++读取图片

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

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

主要用到的函数

ifstream.seekg()
ifstream.tellg()
ifstream.read()

主要步骤

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

代码

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

int main(){
	// 1. 打开图片文件
	// 评论区的 @霍鑫网络 帮忙发现一个隐藏的bug,在此表示感谢,已经修正
	ifstream is("test.jpg", 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;
}
  • 64
    点赞
  • 307
    收藏
    觉得还不错? 一键收藏
  • 40
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 40
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值