【C++】保存网络获取的图片至本地
2015-09-04 13:49
549 查看
前言
从网络上获取了图片数据之后,如何保存到本地的问题?
本篇是上一篇《【C++】GET、POST网络请求boost.asio实现》的姊妹篇。
无论是GET还是POST,获取的数据均以std::string类型返回,若是图片怎么办?
其实代码写出来很简单,实现方式如下:
博文首发:http://blog.csdn.net/duzixi
源代码
ImgWriter.h
ImgWriter.cpp
后语
在这个例子里,保存图像文件时需要将string类型转换为char数组是核心关键。
换了新工作之后,没想到会这么快就介入C++的内容。
看似基本简单的功能,若是不熟悉鼓弄起来真是花费好久。
看到很多本质层面的东西,视野也透亮了很多。
从网络上获取了图片数据之后,如何保存到本地的问题?
本篇是上一篇《【C++】GET、POST网络请求boost.asio实现》的姊妹篇。
无论是GET还是POST,获取的数据均以std::string类型返回,若是图片怎么办?
其实代码写出来很简单,实现方式如下:
博文首发:http://blog.csdn.net/duzixi
源代码
ImgWriter.h
// // ImgWriter.h // // Created by duzixi.com on 15/8/27. // #include <stdio.h> #include <iostream> #include <fstream> using namespace std; // 指定本地路径,保存文件 void WriteImgLocal(const char* path, string imgStr);
ImgWriter.cpp
// // ImgWriter.cpp // // Created by duzixi.com on 15/8/27. // #include "ImgWriter.h" using namespace std; // 指定本地路径,保存文件 void WriteImgLocal(const char* path, string imgStr) { long size = imgStr.length(); // 1. 定义保存图片的文件 FILE *ofile = fopen(path, "wb"); // 2. 再将string类型转换为char数组 char* imgCharArray = new char[size]; for(int i = 0; i <= size; i++){ imgCharArray[i] = imgStr[i]; } // 3. 最后将char数组输出保存为图片文件 fwrite(imgCharArray, sizeof(char), size, ofile); fclose(ofile); // 关闭文件 }
后语
在这个例子里,保存图像文件时需要将string类型转换为char数组是核心关键。
换了新工作之后,没想到会这么快就介入C++的内容。
看似基本简单的功能,若是不熟悉鼓弄起来真是花费好久。
看到很多本质层面的东西,视野也透亮了很多。
相关文章推荐
- Java网络编程,UDP TCP
- Exchange工具07—Http watch
- Linux网络属性配置
- Linux系统上的网络配置
- PHP+lghttpd + postgresql 环境搭建
- PHP+lghttpd + postgresql 环境搭建
- [Network] 计算机网络基础知识总结
- Android 网络操作(其中包含xUtils的HttpUtils联网)
- 神经网络
- 网络请求数据 POST 方法
- 网络异步请求数据
- 利用BP神经网络预测水道浅滩演变
- java网络编程基础
- RBF神经网络中bewrb()与newrbe()的区别
- 网络异步请求图片加载
- 网络同步请求
- 详解Http协议
- bee中下载网络资源时,加载转圈的进度条
- TCP/IP详解--拥塞控制 & 慢启动 快恢复 拥塞避免
- [python]http_server