SDL设置转换色

原创 2005年04月28日 14:19:00

SDL_Surface *ChangeColor(SDL_Surface *surface, int flag)
{
 //flag : 1.绿色2.红色3.蓝色
 
 SDL_Surface *sur=surface;
 SDL_LockSurface(sur);
 
 register  Uint32 *s = (Uint32 *)sur->pixels;
 
 int w = sur->w;
 int h = sur->h;
 
 long lPitch = surface->pitch>>2;

 int i,j;
 
 Uint32 sc;

 int alpha = 32;

 for(i=0; i<h; ++i)
 {
  for(j=0; j<w; ++j)
  {
   sc = (Uint32)s[lPitch*i+j];
   
   Uint32 sr , sg , sb , dr , dg , db;
   
   sr = (sc & 0xFF0000) >> 16 ;
   sg = (sc & 0xFF00) >> 8 ;
   sb = sc & 0xFF;
   
   if (flag==1) {
    dr = 0;
    dg = 255;
    db = 0;

    dg = ((sg * alpha) + (dg *(32-alpha))) >> 5 ;
   }
   if (flag==2) {
    dr = 255;
    dg = 0;
    db = 0;

    dr = ((sr * alpha) + (dr *(32-alpha))) >> 5 ;
   }
   if (flag==3) {
    dr = 0;
    dg = 0;
    db = 255;
    
    db = ((sb * alpha) + (db *(32-alpha))) >> 5 ;
   }
   s[lPitch*i+j] = (Uint32) (dr <<16)|(dg<<8)|db ;
  }
 }
 SDL_UnlockSurface(sur);
 return sur;
}

change 1 bmp's oranginal color , alpha blent to a color post by flag....1.green,2,red,3,blue

shit ,use my 一上午时间,。。。。。

SDL2.0 扣色(PNG图片重叠)

  • 2017年06月22日 13:44
  • 3.31MB
  • 下载

SDL入门教程(九):4、int转换为std::string

作者:龙飞         我下面考虑的问题,是用TextSurface反馈鼠标事件的信息。我想到的第一个例子,很自然就是反馈鼠标所在坐标的位置。这里涉及到一个基础的问题,即鼠标位置显然不是用字...

SDL学习(001):走好第一步——VS2017中的基本设置

记录本人使用VS2017学习SDL开发时遇到的入门级错误。
  • tmsc123
  • tmsc123
  • 2017年05月07日 10:57
  • 3634

交叉编译SDL 安装配置及环境变量的设置

我的环境脚本:env #!/bin/sh export PROJECT=arm-2009q1 export PRJROOT=/opt/${PROJECT} export TARGET=ar...
  • dssxk
  • dssxk
  • 2011年09月09日 09:43
  • 1180

SDL入门教程(十):4、用iconv获得正确的Unicode,使用FriBiDi实现UTF-8到Unicode的正确转换

作者:龙飞 4.1:为什么iconv不能完全正确的转换Unicode?         我不是先知,教程里面是整理过的思路和逻辑顺序,在我研究这个问题的时候,头绪远远比教程里面乱得多。我完...

FireBreath设置SDL窗体停靠在网页上面

这个针对在FireBreath里面使用SDL的窗体的一个说明。     当时在FireBreath使用SDL播放视频,视频窗体没有停靠网页上面,而是想一个对话框一样的在外面漂浮着的 ...

SDL入门教程(一):3、MinGW 下的安装与设置

3.1:MinGW 是什么?         MinGW 提供了一套简单方便的Windows下的基于GCC 程序开发环境。MinGW 收集了一系列免费的Windows 使用的头文件和库文件;同时...
  • slj_win
  • slj_win
  • 2014年05月22日 09:46
  • 2886

嵌入式 Color Keying(抠色)SDL背景透明

照翻教程)现在你即将要学习如何使用color key,用English来说就是这个教程将要教你如何在使用一个表面的时候将其背景色去掉。SDL_Surface结构有一个叫做color key的结构,也就...
  • skdkjxy
  • skdkjxy
  • 2013年12月02日 20:46
  • 892

SDL2.0 扣色(png图片重叠,前景色透明)

如图,小人的背景是青色的(R:0,G:FF,B:FF),那么我们现在要将小人背景透明化,则现在的color key就是青色的。   Color Keying(抠色)" title="SDL...

FFMpeg+SDL2 播放本地AVI文件

  • 2017年12月13日 16:18
  • 11.85MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SDL设置转换色
举报原因:
原因补充:

(最多只允许输入30个字)