Windows编程 内存中加载图片并显示 Direct离屏表面的实现

版本:VS2015 语言:C++

 

前段时间去白空轨了,感觉快燃尽了。没有看Windows的书,所以博客也没更,不过请组织放心,从现在开始,即使是节假日,我也会仔细钻研DirectX的。

 

今天是第七章的完结,当时作者写书比较老了,还一直用的8位图,而8位图牵扯到调色板,所以他就一直在那边纠结,我就简单的看了一下,给大家介绍的也都是VS中能够调试出来的程序。

 

好了,进入正式的学习。

 

cocos的玩家们应该对Sprite不陌生,Sprite简单的来说就是一张图片嘛,从磁盘中加载到内存中然后显示到屏幕上,十分方便。而这次我就要介绍的就是在DirectX Windows程序中加载图片。

 

首先准备一章图片,因为作者使用的是BMP格式的,所以大家一定要注意图片的格式,普通的图片是用不了的,而且现在我写的程序只能使用24位图,所以需要一个史前的工具:

链接:http://pan.baidu.com/s/1qXJsAJi 密码:icca

 

用这个工具画一张图,并保存成bmp格式(我的代码中尺寸要求是300*300的):



嗯,就是一棵树。

 

好了,图片有了,怎么加载到程序中呢?看代码:

#define BITMAP_ID 0x4D42

// 定义BMP数据结构
typedef struct BITMAP_FILE_TAG
{
	BITMAPFILEHEADER bitmapfileheader;	//BMP文件头部
	BITMAPINFOHEADER bitmapinfoheader;	//BMP信息头部
	PALETTEENTRY palette[256];	//调色板(但是在我们的程序中没有作用)
	UCHAR *buffer;	//数据
}BITMAP_FILE, *BITMAP_FILE_PTR;

BITMAP_FILE_PTR picture1;	//我们的图片

// 翻转bmp图片
int Flip_Bitmap(UCHAR *image, int bytes_per_line, int height)
{
	UCHAR* buffer;
	int index;

	if (!(buffer = (UCHAR*)malloc(bytes_per_line * height)))
	{
		popMessage(TEXT("malloc ERROR"));
		ret
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值