文件读取与写入操作——将一张图片用二进制格式读取出来,然后传输,并存储在一个新文件
发布日期:2021-05-14 10:08:31 浏览次数:18 分类:精选文章

本文共 1808 字,大约阅读时间需要 6 分钟。

将一张图片用二进制格式读取出来,然后传输,并存储在一个新文件

/*********************************************************************概要:图片读取与存储测试参考:https://ask.csdn.net/questions/206408	  https://blog.csdn.net/yhl_leo/article/details/50782792目的:将一张图片用二进制格式读取出来,然后传输,并存储在一个新文件日期:2019.9.26作者:maohuifei**********************************************************************/#include
#include
/********************************************************************** 摘 要:将缓冲区数据写入文件* 参 数: buf: filename: size:长度* 当前版本:1.0.0* 作 者:maoge* 日 期:2019.09.07* 备 注:**********************************************************************/void WriteFromStream(char * buf, char * filename, unsigned int size){ FILE * f = fopen(filename, "wb+"); if (f) { fwrite(buf, 1, size, f); fclose(f); }}/********************************************************************** 摘 要:读取文件到缓冲区* 参 数: buf: filename: size:* 当前版本:1.0.0* 作 者:maoge* 日 期:2019.09.07* 备 注:**********************************************************************/void ReadToStream(char * filename){ char new_file[30] = "";//文件名 FILE * f = fopen(filename, "rb"); if (f) { //下面 fseek(f, 0, SEEK_END); int size = ftell(f);//返回给定流stream的当前文件位置。一般作用是获取文件大小,以定义buf大小 char * buf = new char[size]; fseek(f, 0, SEEK_SET); memset(buf, 0, size);//赋初值0 int nRead = fread(buf, sizeof(char), size, f); printf("size=%d\n ", size); printf("nRead=%d\n ",nRead); //int nRead = fread(buf, 1, size, f);//sizeof(char)值就是1 fclose(f); if (nRead > 0) { //将二进制流打印成16进制字符串 for (unsigned int i = 0; i < nRead; i++) { printf("%02X ", (unsigned char)buf[i]); if (i % 16 == 15) { printf("\n"); } } } sprintf(new_file, "new3_%s", filename); WriteFromStream(buf, new_file, size); delete buf; }}int main(){ ReadToStream("03.jpg"); return 0;}
上一篇:opencv类简单分析: CascadeClassifier
下一篇:C 库函数 - fread()详解

发表评论

最新留言

不错!
[***.144.177.141]2025年04月15日 16时57分19秒