SDL2.0 扣色(png图片重叠,前景色透明)
来源:互联网 发布:淘宝吉姆尼外观零部件 编辑:程序博客网 时间:2024/05/18 11:17
如图,小人的背景是青色的(R:0,G:FF,B:FF),那么我们现在要将小人背景透明化,则现在的color key就是青色的。
#include "stdafx.h"#include "include/SDL.h"#include "SDL2_image/include/SDL_image.h"#pragma comment(lib, "lib/x86/SDL2.lib")#pragma comment(lib, "SDL2_image/lib/x86/SDL2_image.lib")int _tmain(int argc, _TCHAR* argv[]){SDL_Init(SDL_INIT_EVERYTHING);//SDL初始化SDL_Window *Screen = SDL_CreateWindow("Title", 100, 100, 640, 480, SDL_WINDOW_RESIZABLE);//创建窗口SDL_Renderer *render = SDL_CreateRenderer(Screen, -1, 0);//创建渲染器SDL_Surface *bk = IMG_Load("F:\\background.png");//SDL IMAGE扩展库读取tga图片SDL_Surface *foo = IMG_Load("F:\\foo.png");//SDL IMAGE扩展库读取tga图片//Use this function to map an RGB triple to an opaque pixel value for a given pixel format//format:an SDL_PixelFormat structure describing the format of the pixelUint32 colorkey = SDL_MapRGB(foo->format, 0x00, 0xff, 0xff);//用画图工具提取foo.png的背景颜色,发现foo.png的背景色是0x00ffff//surface:the SDL_Surface structure to update//flag:SDL_TRUE to enable color key, SDL_FALSE to disable color key//key:the transparent pixel//Returns 0 on success or a negative error code on failure; call SDL_GetError() for more information.SDL_SetColorKey(foo, 1, colorkey);//Use this function to set the color key (transparent pixel) in a surface.SDL_Texture *texture = SDL_CreateTextureFromSurface(render, bk);//创建纹理SDL_Texture *texture1 = SDL_CreateTextureFromSurface(render, foo);//创建纹理SDL_RenderClear(render);SDL_RenderCopy(render, texture, NULL, NULL);//拷贝数据显示SDL_Rect rect;rect.x = 50;rect.y = 125;rect.w = foo->w;rect.h = foo->h;SDL_RenderCopy(render, texture1, NULL, &rect);//拷贝数据显示SDL_RenderPresent(render);SDL_Event event;while (1){SDL_PollEvent(&event);if (event.type == SDL_QUIT){break;}}SDL_FreeSurface(bk);//是否图片资源SDL_DestroyTexture(texture);//释放纹理SDL_DestroyRenderer(render);//释放渲染器SDL_DestroyWindow(Screen);//销毁窗口SDL_Quit();//退出return 0;}
显示结果:
demo:http://download.csdn.net/detail/sz76211822/9877623
阅读全文
0 0
- SDL2.0 扣色(png图片重叠,前景色透明)
- 将png图片背景色置为透明
- Java裁剪压缩PNG图片,透明背景色变黑问题解决
- Photoshop如何只修改png前景色,而不给透明背景着色。
- VC6.0显示透明PNG图片
- 显示透明PNG图片
- png图片透明代码
- Wince Png图片透明
- ie6 png图片透明
- 加载PNG透明图片
- JS背景色图片透明
- 零基础学习SDL开发之在Android使用SDL2.0渲染PNG图片
- php处理透明png图片
- 设置png图片边框透明
- 把PNG 图片设置透明
- IE6实现PNG图片透明
- i6下面png图片透明
- 显示透明的PNG图片
- 窗体部件之QToolBar
- Jupyter 数据可视化
- linux基础命令
- shell脚本中执行时提示“没有那个文件或目录”的解决办法
- ScriptableObject 整理1 :ScriptableObject的介绍
- SDL2.0 扣色(png图片重叠,前景色透明)
- java生成单个和批量二维码
- iOS开发之应用内检测手机是否为锁屏,解锁状态
- [干货]基础机器学习算法
- phpmyadmin登录有效期修改
- java 泛型
- Maven学习 (三) 使用m2eclipse创建web项目
- Java IO: RandomAccessFile
- 使用栈计算中缀表达式