C++从mongodb取图片操作(存入内存处理图片)!
2012-08-24 18:48
288 查看
刚开始写这个程序到时候都是先写入本地磁盘,然后再读取图片处理,一直以来都知道这样会很慢,但是为了先搞定处理图片功能,没去管。
今天就想解决这个问题,然后刻意取网上搜集了些资料,经过搜集到资料和自己到总结,总算解决了。
首先来说一下mongodb的GridFS,网上很多就不介绍了,我之前一直在用find函数,原型是
这个函数就不讲怎么用了,网上有,简单的都是找出条件query所要找到的图片。一般是根据_id来查询。
它所返回到值是GridFile类型的,这个类型在官网也能看到很详细,然后里面有一个方法是write:
这里看到二进制流其实就豁然开朗了,既然是流,那当然可以写入文件中,但是我的目的不是写入文件中,而是写入内存中,这当然也可以,首先我就想到入char*。
我查了好些资料,终于在http://www.cplusplus.com/reference/iostream/istream/read/ 也就是C++的官网看到了这个。
发现有一个类是stringstream,它继承IOSTREAM,OSTREAM,ISTREAM,看了看例子就把二进制流写入了char*中,然后将它运用到我写的程序,调试调试。OK
今天就想解决这个问题,然后刻意取网上搜集了些资料,经过搜集到资料和自己到总结,总算解决了。
首先来说一下mongodb的GridFS,网上很多就不介绍了,我之前一直在用find函数,原型是
GridFile | findFile (BSONObj query) const |
returns a file object matching the query |
它所返回到值是GridFile类型的,这个类型在官网也能看到很详细,然后里面有一个方法是write:
gridfs_offset | write (ostream &out) const |
write the file to the output stream | |
gridfs_offset | write (const string &where) const |
write the file to this filename |
我查了好些资料,终于在http://www.cplusplus.com/reference/iostream/istream/read/ 也就是C++的官网看到了这个。
发现有一个类是stringstream,它继承IOSTREAM,OSTREAM,ISTREAM,看了看例子就把二进制流写入了char*中,然后将它运用到我写的程序,调试调试。OK
相关文章推荐
- Android Bitmap操作内存问题总结(图片处理、截屏等)
- 利用 HandlerThread 创建一个后台工作线程( AsyncTask 的缺点),处理图片缩放时内存溢出问题
- c++实现大批量图片的均值消减均方差化1操作
- py-faster-rcnn中demo.py代码与C++版本的代码对比: part03 处理图片:减掉平均值, resize
- C# - 图片操作和Base64处理
- C++通过操作内存模拟序列化---实现多种类型的序列化(2)
- 浅析C++内存分配与释放操作过程
- C/C++--字符串拷贝及内存操作(转载)
- android Bitmap图片的相关处理操作
- iOS 多线程编程<十四、SDWebImage图片下载,内存警告处理>
- sqlite3 操作 图片的存取、中文字符处理
- 混搭下的C与C++内存操作
- DICOM医学图像处理:DICOM存储操作之“多幅BMP图像数据存入DCM文件”
- [C++]异常处理中的拷贝构造操作(copy constructor)
- 加载一张很大的图片 的时候可能会出现内存溢出,,,处理这张大图片...二次采样
- Android 中 Handler 引起的内存泄露 在Android常用编程中,Handler在进行异步操作并处理返回结果时经常被使用。其实这可能导致内存泄露,代码中哪里可能导致内存泄露,又是如何
- C++动态内存操作
- c++实现使用内存映射文件处理大文件
- c++中批量读取和存入图片
- PHP图片处理之图片背景、画布操作