《关于SDL中的色彩键控》
来源:互联网 发布:男装批发软件 编辑:程序博客网 时间:2024/05/23 13:10
其实我感觉初学SDL的时候,前边的一些代码格式都基本相同,无非就是定义屏幕的各种属性,位图指针,加载图片,优化图片,位图传输,初始化所有SDL子系统然后用加载函数来加载图片等等。反正大概都是这个样子。
而色彩键控,需要我们绘制出来我们要设置为色键的色彩,通常是调用SDL_MapRGB()函数输入三基色的值,还需要用到的函数就是SDL_SetColorKey()函数,需要用它进行键控的画面,放置的标志位,设置色键的颜色等等。下面我们来看具体的代码
#include "SDL/SDL.h"
#include "SDL/SDL_image.h"
#include <string>
const int SCREEN_HEIGTH=360;//设置屏幕的各种属性
const int SCREEN_WIDTH=336;
const int SCREEN_BPP=32;
SDL_Surface *background=NULL;//定义一些图片指针
SDL_Surface *image=NULL;
SDL_Surface *screen=NULL;
SDL_Event event;
void apply_surface(int x,int y,SDL_Surface *source,SDL_Surface *destination)//位图传输函数
{
SDL_Rect offset;
offset.x=x;
offset.y=y;
SDL_BlitSurface(source,NULL,destination,&offset);
}
SDL_Surface *load_image(std::string filename)//图片加载函数
{
SDL_Surface *loadedImage=NULL;
SDL_Surface *optimizedImage=NULL;
loadedImage=IMG_Load(filename.c_str());
if(loadedImage!=NULL)
{
optimizedImage=SDL_DisplayFormat(loadedImage);
SDL_FreeSurface(loadedImage);
if(optimizedImage!=NULL)
{
Uint32 colorkey=SDL_MapRGB(optimizedImage->format,0,0xFF,0xFF);//输入三基色的值,制定与画面相同的格式
SDL_SetColorKey(optimizedImage,SDL_SRCCOLORKEY,colorkey);
}
}
return optimizedImage;
}
int main(int argc,char *args[])
{
bool quit=false;
if(SDL_Init(SDL_INIT_EVERYTHING)==-1)//初始化SDL的所有子系统
return 1;
screen=SDL_SetVideoMode(SCREEN_WIDTH,SCREEN_HEIGTH,SCREEN_BPP,SDL_SWSURFACE);
if(screen==NULL)
return 1;
SDL_WM_SetCaption("dfh",NULL);
image=IMG_Load("./1.png");
background=IMG_Load("./a.jpg");
apply_surface(0,0,background,screen);
apply_surface(10,10,image,screen);
if(SDL_Flip(screen)==-1)
return 1;
//SDL_Delay(5000);
while(quit==false)
{
while(SDL_PollEvent(&event))
{
if(event.type==SDL_QUIT)
quit=true;
}
}
//SDL_FreeSurface(message);
SDL_FreeSurface(background);
SDL_Quit();
return 0;
}
- 《关于SDL中的色彩键控》
- SDL第四课色彩键控
- SDL第四课色彩键控
- 谈谈关于网页设计中的色彩理论
- C++SDL色彩与灯光---基础3
- 关于Web页中的色彩反转遇到一点问题
- 关于YUV色彩空间
- 关于YUV色彩空间
- 关于色彩的常识
- 网页中的色彩搭配
- 经济生活中的斑斓色彩
- 网页中的色彩理论
- R语言中的色彩
- 商标设计中的色彩运用
- PS中的色彩模式
- 计算机中的色彩表示
- 关于一键控制锁键盘和开键盘
- 关于 Android 中的 Palette 类的使用案例:色彩自适应的 Toolbar
- 测评后返回结果
- 一个网站重要的在于细节,我们要学会耐心的去完善,去更改
- 面向项目(六)—— 错误(异常)信息的书写
- Courses(二分图水题)
- 网络HTTP、TCP、UDP、Socket 知识总结
- 《关于SDL中的色彩键控》
- poj2553——The Bottom of a Graph(强连通分量)
- HDU1106 排序
- 《java入门第一季》之面向对象(包概述)
- 并查集初学(1)
- 那一年, 我第一次听说华为
- java后台数据库同步使用map进行缓存
- android中bitmap用法示例
- Git使用后的一些思考