Windows程序设计(2):载入一幅图像并显示
来源:互联网 发布:java架构师书籍知乎 编辑:程序博客网 时间:2024/06/06 11:45
用Matlab载入一张图,再显示,好像非常非常容易…
C语言就完全不一样了。很复杂。
原因很简单,因为Matlab都封装好了嘛,而C语言要把所有的细节都体现出来。
以下代码,也来自网络。注意里面很多的注释……
总之,
1. 首先要获得DC(Device Context),设备环境、设备描述表。差不多描述的就是应用程序的客户区。
通过它,Windows操作系统知道我们希望怎么与设备(显示器)打交道,
操作系统再通过驱动去驱动物理设备和驱动,也许是改变电压电流等等,
让屏幕上做出一些相应的动作,比如显示一张图。
2. 显示的东西,首先要载入内存,不然系统怎么知道要显示的是什么呢?
而内存里的东西,要和屏幕上显示的东西,兼容,所以要在内存里创建一个兼容的DC。
为了显示出某张图,(1)要载入图片,比如,从硬盘上载入一张BMP图片到内存。
(2)把内存中的图片数据(肯定是一堆0101了…),拷贝到在内存中虚拟出的一个虚拟DC(通过CreateCompatibleDC函数),
该虚拟DC兼容真正的DC(在paint消息里,用BeginPaint函数得到)。
(3)通过一个“贴图”的函数(BitBlt),把内存中虚拟出来DC里的图像数据(就是我们希望显示的那幅图),显示到屏幕上。
3. 在步骤2(3)中,为了让屏幕显示,还必须要由操作系统帮助我们显示,于是要通过DC(和驱动,但驱动我们看不见了),
把图片显示出来。
上面是用一个for循环,贴了一堆。
如果只需要贴一张图,还要求这张图在客户区中央显示,可以利用size消息,来获取客户区的大小。
最后,利用客户区的大小和图片大小,算出图片的起点坐标。
代码如下。显示的是一辈子也买不起的Ferrari FF的照片了…
0 0
- Windows程序设计(2):载入一幅图像并显示
- Simulink载入图像并显示
- opencv-载入一幅图像并进行平滑处理
- 笔记(一):opencv(图像载入显示输出)
- 研究Opencv之二:载入并显示图像
- OpenCv图像载入显示
- 载入图像并且显示
- 学习Opencv2之载入一幅图像并进行平滑处理
- (代码2)读入一幅图像将之反色并显示
- OpenCV显示磁盘上的图像:cvLoadImage,cvShowImage加载并显示一幅图像(图像位于本地磁盘)
- OpenCV学习笔记(一)图像的载入,显示和输出
- opencv学习笔记 一 载入、显示和保存图像
- 图像的载入与显示
- MATLAB载入和显示图像
- 图像的载入和显示
- vs2010+opencv 读取并显示一幅图像
- 读入并显示一幅图像—system generator
- windows 远程登陆linux并显示图像界面
- 记笔记的好处
- ABAP X类型 和 xstring类型
- 修复/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory 问题
- PHP的错误类型
- 使用MySQL Migration Toolkit快速将Oracle数据导入MySQL
- Windows程序设计(2):载入一幅图像并显示
- iOS开发Cocopads 2016使用
- Android小知识(3)
- PDO预处理
- 怎样在程序中打日志?
- 用网页打开oracle
- JS对象
- Python3.5 MySQL 数据库连接
- ASI框架