c++ 读取、保存单张图片
转载:https://www.jb51.net/article/147896.htm
实际上就是以二进制形式打开文件,将数据保存到内存,在以二进制形式输出到指定文件。因此对于有图片的文件,也可以用这种方法复制其内容
#include<iostream> using namespace std; void main(void)
{
//保存输入图像文件名和输出图像文件名
char InImgName[];
char OutImgName[];
//图像数据长度
int length;
//文件指针
FILE* fp;
//输入要读取的图像名
cout << "Enter Image name:";
cin >> InImgName;
//以二进制方式打开图像
if ((fp = fopen(InImgName, "rb")) == NULL)
{ cout << "Open image failed!" << endl;
exit();
}
//获取图像数据总长度
fseek(fp, , SEEK_END);
length = ftell(fp);
rewind(fp);
//根据图像数据长度分配内存buffer
char* ImgBuffer = (char*)malloc(length* sizeof(char));
//将图像数据读入buffer
fread(ImgBuffer, length, , fp);
fclose(fp);
//输入要保存的文件名
cout << "Enter the name you wanna to save:";
cin >> OutImgName;
//以二进制写入方式
if ((fp = fopen(OutImgName, "wb")) == NULL)
{
cout << "Open File failed!" << endl;
exit();
}
//从buffer中写数据到fp指向的文件中
fwrite(ImgBuffer, length, , fp);
cout << "Done!" << endl;
//关闭文件指针,释放buffer内存
fclose(fp);
free(ImgBuffer);
}
c++ 读取、保存单张图片的更多相关文章
- C++读取与保持图片
#include<iostream> using namespace std; void main(void) { //保存输入图像文件名和输出图像文件名 ]; ]; //图像数据长度 i ...
- 读取视屏文件,保存帧图片为ppm文件
ffmpeg跟sdl的学习过程:一.版本信息:ffmpeg-3.0.2.tar.bz2SDL2-2.0.4.tar.gz二.编译过程:1.ffmgeg的编译:./configure --enable- ...
- python读取,显示,保存mnist图片
python处理二进制 python的struct模块可以将整型(或者其它类型)转化为byte数组.看下面的代码. # coding: utf-8 from struct import * # 包装成 ...
- python实现读取并显示图片的两种方法
https://www.cnblogs.com/lantingg/p/9259840.html 在 python 中除了用 opencv,也可以用 matplotlib 和 PIL 这两个库操作图片. ...
- python 读取并显示图片的两种方法
在 python 中除了用 opencv,也可以用 matplotlib 和 PIL 这两个库操作图片.本人偏爱 matpoltlib,因为它的语法更像 matlab. 一.matplotlib 1. ...
- OpenGL中的深度、深度缓存、深度测试及保存成图片
1.深度 所谓深度,就是在openGL坐标系中,像素点Z坐标距离摄像机的距离.摄像机可能放在坐标系的任何位置,那么,就不能简单的说Z数值越大或越小,就是越靠近摄像机. 2.深度缓冲区 深度缓冲区原理就 ...
- 使用ffmpeg将BMP图片编码为x264视频文件,将H264视频保存为BMP图片,yuv视频文件保存为图片的代码
ffmpeg开源库,实现将bmp格式的图片编码成x264文件,并将编码好的H264文件解码保存为BMP文件. 实现将视频文件yuv格式保存的图片格式的測试,图像格式png,jpg, gif等等測试均O ...
- javacpp-opencv图像处理之1:实时视频添加文字水印并截取视频图像保存成图片,实现文字水印的字体、位置、大小、粗度、翻转、平滑等操作
欢迎大家积极开心的加入讨论群 群号:371249677 (点击这里进群) javaCV图像处理系列: javaCV图像处理之1:实时视频添加文字水印并截取视频图像保存成图片,实现文字水印的字体.位置. ...
- 三种方法,刷新 Android 的 MediaStore!让你保存的图片立即出现在相册里!
公众号原标题:测试:"系统相册里怎么看不到我刚保存的图片,是我操作不对吗?" 一.序 Hi,大家好,我是承香墨影! App 内,创建一个文件并保存文件到本地的需求,是很常见的 I/ ...
随机推荐
- P & R 9
Floorplan: 要做好floorplan需要掌握哪些知识跟技能? 明确Floorplan 处理的对象:对于数字设计的 Floorplan 来说,它是一个很依赖前后步骤的一个过程,这个可以看作是后 ...
- redis-server.exe redis.windows.conf 报错
在参考博文:https://blog.csdn.net/erlian1992/article/details/54382443#comments 学习redis的时候启动报错 C:\Users\Adm ...
- Delphi XE FireDac 连接池
在开发Datasnap三层中,使用FireDac 连接 MSSQL数据库. 实现过程如下: 1.在ServerMethods 单元中放入 FDManager.FDPhysMSSQLDriverLin ...
- SpringMVC注解@RequestMapping全面解析
@RequestMapping 可以出现在类级别上,也可以出现在方法上.如果出现在类级别上,那请求的 url 为 类级别上的@RequestMapping + 方法级别上的 @RequestMappi ...
- 攻防世界 你知道什么是cookie吗?
打开题目链接,提示我们查看cookie,cookie是HTTP协议中的一个重要参数,(对HTTP协议不是很熟悉的friends可以看看这个“HTTP协议其实就是这么简单”) 查看cookie的方法有很 ...
- 201771010135 杨蓉庆AND张燕 《面对对象程序设计(java)》第十一周学习总结
1.实验目的与要求 (1) 掌握Vetor.Stack.Hashtable三个类的用途及常用API: (2) 了解java集合框架体系组成: (3) 掌握ArrayList.LinkList两个类的用 ...
- js的split() 方法和join()方法
定义和用法 split() 方法用于把一个字符串分割成字符串数组. String.split() 执行的操作与 Array.join 执行的操作是相反的. join() 方法用于把数组中的所有元素放入 ...
- Spring的事务实现原理
主流程 Spring的事务采用AOP的方式实现. @Transactional 注解的属性信息 name 当在配置文件中有多个 TransactionManager , ...
- Go语言内置包之strconv
文章引用自 Go语言内置包之strconv Go语言中strconv包实现了基本数据类型和其字符串表示的相互转换. strconv包 strconv包实现了基本数据类型与其字符串表示的转换,主要有以下 ...
- 【PAT甲级】1092 To Buy or Not to Buy (20 分)
题意: 输入两行字符串,如果第二行字符串包含于第一行字符串,输出"Yes"以及第一行字符串减去第二行字符串剩余的字符个数,否则输出"No"以及第二行字符串中不在 ...