【笨嘴拙舌WINDOWS】BMP图片浏览器
要将文件显示成图片这其中需要经过
1.将磁盘文件内容读取到内存;
2.将文件对应内存里包含的像素为以及像素信息转化为显示驱动器能理解的格式;
3.将转化过后的内存送到显卡的缓存区
4.显示器读取缓存现实于屏幕
在GDI中,WINDOWS不允许用户操作硬件,所以提供了用于显示位图文件到屏幕的API:
SetDIBitsToDevice 直接将DIB显示到屏幕上
(
hdc,
xDst,
yDst, (xDst,yDst)指定图片左上角的在屏幕上的坐标
cxSrc, 要显示DIB图片的宽度
cySrc, 要显示DIB图片的宽度
xSrc,
ySrc, (xSrc,ySrc)是DIB图片左下角的坐标
yScan, 指定DIB图片从哪一行扫描行开始
cYScans, 指定一次扫描多少行
pBits,
pInfo,
fClrUse
)
StrechDIBits 将DIB通过缩放来显示到屏幕上
SetDIBitsToDevice 和StrechDIBits 在函数调用期间,每个像素(可能有几百万个)必须从设备无关的格式想设备相关的格式转换,而这种转换通常是非常繁琐的。因此这两个函数的执行效率并不是非常高,WINDOWS为我们提供了一些DIB与DDB的转换函数。
hBitmap = CreateDIBitmap(hdc,pInfoHdr,0,PbITS,PiNFO,0)
或者
hBitmap = CreateDIBitmap(hdc,pInfoHdr,0,null,null,0)
SetDibits(hdc,hBitmap,0,bitmap.height,pBits,Pinfo,0)
《《------------反向---------------------》》
通过GetDibits(hdc,hBitmap,yScan,CYScans,pBits(out),Pinfo(out),0)将DDB转换为DIB,将位图保存为磁盘文件,屏幕截图就需要使用此函数
【笨嘴拙舌WINDOWS】BMP图片浏览器的更多相关文章
- Windows 保存BMP图片
在Windows下保存BMP图片还是挺方便的,直接上代码,拷贝就能用 void savebmp(uchar * pdata, char * bmp_file, int width, int heigh ...
- windows server 2008 R2安装图片浏览器/照片查看器方法
有用户的电脑安装了windows server 2008 R2,浏览大量图片时很不方便,因为系统中没有照片查看器或图片浏览器.其实,win2008 R2是有照片查看器的,只是默认情况下没有开启.参考以 ...
- BMP图片格式模型
BMP BMP(全称Bitmap)是Window操作系统中的标准图像文件格式 可以分成两类:设备相关位图(DDB)和设备无关位图(DIB),使用非常广. 它采用位映射存储格式,除了图像深度可选以外,不 ...
- 用WPF窗体打造个性化界面的图片浏览器
原文:用WPF窗体打造个性化界面的图片浏览器 本文使用WPF窗体(XAML及C#)与Win Form控件(FolderBrowserDialog)结合的方式, 演示制作了一个简易漂亮的WPF图片浏览器 ...
- 【VC++技术杂谈006】截取电脑桌面并将其保存为bmp图片
本文主要介绍如何截取电脑桌面并将其保存为bmp图片. 1. Bmp图像文件组成 Bmp是Windows操作系统中的标准图像文件格式. Bmp图像文件由四部分组成: (1)位图头文件数据结构,包含Bmp ...
- bmp图片的有关操作
读取bmp图片 并生成新的bmp图片 #include "stdafx.h"#include <windows.h>#include <cmath>#inc ...
- MFC对话框显示BMP图片
1.MFC对话框显示BMP图片我们先从简单的开始吧.先分一个类: (一) 非动态显示图片(即图片先通过资源管理器载入,有一个固定ID) (二) 动态载入图片(即只需要在程序中指定图片的路径即可载入) ...
- BMP图片格式
BMP图片 BMP采用位映射存储格式,除了图像深度可选以外,不采用其他任何压缩,因此,BMP文件所占用的空间很大.BMP文件的图像深度可选lbit.4bit.8bit及24bit和32bit.BMP文 ...
- Python中通过Image的open之后,去show结果打不开bmp图片,无法正常显示图片
在windows的cmd命令行下,使用Python的PIL库打开并显示一个jpg图片: ? 1 2 3 openedImg = Image.open(saveToFile); print " ...
随机推荐
- 线上问题 - MySQL SQL state [HY000]; error code [1366]
一.问题描述 另外一个系统调用服务接口api:/xxx/create?aName=&time=&...,数据没有保存成功提示SQL state [HY000]; error code ...
- lightoj 1408 Batting Practice (概率问题,求期望,推公式)
题意:一个人若连续进k1个球或连续不进k2个球,游戏结束,给出这个人不进球的概率p(注意:是不进球!!!),求到游戏结束时这个投球个数的期望. 不进球概率为p,进概率 q=1-p.设 f[i] 表示连 ...
- 在linux服务器上装svn版本管理,自动部署代码到项目
在linux服务器上装svn版本管理,自动部署代码到项目 http://bbs.aliyun.com/read/9715.html?spm=5176.7114037.1996646101.1.W3zw ...
- 关于iOS7 上下黑条解决办法
解决办法 找到工程的targest->General->Launch Image Sourse OK 运行问题解决
- 评论 ”[实例] 设计基于JQM的WebApp“
点这里 DEMO 先上最近做的一个WebApp小应用,http://iwxy.me/m.html,大家可以先去玩玩儿,在移动终端访问查看最佳效果 实现的功能是微博上偶然看到的一个小测试,动物认识真实的 ...
- Codeforces Round #336 (Div. 2) D. Zuma 区间dp
D. Zuma Genos recently installed the game Zuma on his phone. In Zuma there exists a line of n gems ...
- Meteor 之 数据的发布于订阅(Publish and subscribe )
发布和订阅 发布(Publication)和订阅(Subscription)是 Meteor 的最基本最重要的概念之一,但是如果你是刚刚开始接触 Meteor 的话,也是有些难度的. 这已经导致不少误 ...
- 配置sshd_config中的PermitRootLogin设置root登录或者禁止root登录
在etc的sshd_config文件中,默认有PermitRootLogin no的配置,这个的意思是禁止root用户登录,如果想要允许root登录,需要su root用户到sshd_config下进 ...
- jenkins创建git任务连接时遇到的问题
jenkins 创建任务后 配置 git时 报错 Jenkins Host key verification failed jenkins: Failed to connect to reposito ...
- Python概述_软件安装_常见问题
1. Python安装 目前python有2个大版本,2和3,由于2和3语法有差别,现有的许多库都是基于python2开发,本系列文章以python2为主. 1.1 重要概念 1. 动态语言 运行 ...