//颜色范围0-255;
// 1.原始:
if (tem_b<)tem_b=;else if (tem_b>)tem_b=;
if (tem_g<)tem_g=;else if (tem_g>)tem_g=;
if (tem_r<)tem_r=;else if (tem_r>)tem_r=;
//2.使用条件状态值生成掩码来移除条件分支
tem_b &=-(tem_b>=);//求负是为了生成掩码,也可以减1来生成掩码 <0
tem_b = (tem_b | -(tem_b>) ) & 0xFF;//>255
tem_g &=-(tem_g>=);
tem_g = (tem_g | -(tem_g>) ) & 0xFF;
tem_r &=-(tem_r>=);
tem_r = (tem_r | -(tem_r>) ) & 0xFF;
//3.使用带符号的移位生成掩码来移除条件分支 (建议使用该方案替代上面的条件状态值方案)
tem_b &=~(tem_b>>);
tem_b = (tem_b | ((-tem_b)>>) ) & 0xFF;
tem_g &=~(tem_g>>);
tem_g = (tem_g | ((-tem_g)>>) ) & 0xFF;
tem_r &=~(tem_r>>);
tem_r = (tem_r | ((-tem_r)>>) ) & 0xFF; //4.查表移除分支;
unsigned char_color_table[++];//假设color属于[-256..512]
unsigned char*color_table=&_color_table[];//先偏移256
//初始化 color_table;
for ( int i = -;i< ; i++)
{
if (i<) color_table[i]=;
else if (i>) color_table[i]=;
else color_table[i]=i;
}
...
resultRow[*x]=color_table[tem_b];
resultRow[*x+]=color_table[tem_g];
resultRow[*x+]=color_table[tem_r];

最新文章

  1. 我的屌丝giser成长记-工作篇之A公司
  2. bash coding to changeNames
  3. Sql Server之旅——第九站 看公司这些DBA们设计的这些复合索引
  4. 读懂IL代码就这么简单 (一)
  5. es安装
  6. 20145215《Java程序设计》第8周学习总结
  7. Python 学习之urllib模块---用于发送网络请求,获取数据(3)
  8. ECSHOP首页站内快讯在哪里添加和修改?
  9. FreeCodeCamp:Confirm the Ending
  10. 【转】Git代码行统计命令集
  11. poj2886线段树(单点修改,区间查询)
  12. shell 处理 文件名本身带星号的情况
  13. Android中的服务
  14. 为何webpack打包后的文件要放在服务器上才能运行
  15. Linux内存使用情况以及内存泄露分析之工具与方法
  16. 关于JavaScript的框架和库
  17. day 2:计算机的基础知识,编程语言分类
  18. 浅析b-树 b+树 以及Mysql的Innodb,Myisam引擎
  19. The Twelve-Factor Container
  20. day31-python阶段性复习五

热门文章

  1. error C2712: Cannot use __try in functions that require object unwinding
  2. iOS开发之SceneKit框架--实战地月系统围绕太阳旋转
  3. csdn自动生成目录索引、插入代码片快捷键
  4. 安装MySql社区版(35-3)
  5. 第十八篇:java操作Excel要处理和分辨的几个概念
  6. 大半宿,封装了一个MP3播放器的类,写了个简陋的播放器
  7. OA系统和ERP系统的区别
  8. 编写main方法
  9. winform 旋转图片
  10. Luogu P2458 [SDOI2006]保安站岗(树形dp)