之前利用GDI+实现图片背景透明处理,发现在XP下无效,后来经过研究,用CXimage实现了透明处理的过程,代码不仅精简了很多,而且在XP下同样有效。

通过学习CXIMAGE的demo,自己实现了gif背景透明的处理过程,代码如下:

CxImage image((BYTE*)ssImageSource.c_str(), ssImageSource.length(),CXIMAGE_FORMAT_GIF);

if (image.IsValid()) 
{
  RGBQUAD c = {255, 255, 255, 0};
  if (image.GetTransIndex() != 24)
  {
  image.IncreaseBpp(24);
  }
  image.SetTransIndex(0);
  RGBQUAD rgbTrans = {255, 255, 255, 0};
  image.SetTransColor(rgbTrans);
 
  CQuantizer q(16,8);
  q.ProcessImage(image.GetDIB());
  ppal=(RGBQUAD*)calloc(16*sizeof(RGBQUAD),1);
  q.SetColorTable(ppal);
  
  image.DecreaseBpp(4,false,ppal,16);
  
  if (!image.AlphaPaletteIsValid()) 
{
image.AlphaPaletteEnable(0);
}
  image.SetTransIndex(image.GetNearestIndex(c));
  
  if (ppal) free(ppal);
  image.SetProgress(100);

//image.Save("pic2.gif",CXIMAGE_FORMAT_GIF);
}
long picBuffSize=0;//得到图像大小
BYTE* picBuff=NULL;//存储图像数据的缓冲
image.Encode(picBuff,picBuffSize,CXIMAGE_FORMAT_GIF);

经过实践证明,CXimage确实很强大。

cximage 进行gif 背景透明处理相关推荐

  1. CSS 背景(background)(背景颜色color、背景图片image、背景平铺repeat、背景位置position、背景附着、背景简写、背景透明、链接导航栏综合案例)

    1. 背景颜色(color) background-color:颜色值; 默认的值是 transparent 透明的 示例代码: <!DOCTYPE html> <html lang ...

  2. MFC 加入背景图片并让控件背景透明

    /*加入背景图片*/ BOOL CTOOLDlg::OnEraseBkgnd(CDC* pDC) {  // TODO: 在此加入消息处理程序代码和/或调用默认值  CDialog::OnEraseB ...

  3. 让Flash背景透明兼容Firefox、IE 6和IE 7的代码

    添加代码: <param name="wmode" value="transparent" > 到 <object>-</obje ...

  4. Sublime如何设置背景透明

    Sublime如何设置背景透明 下载sublime 透明背景插件 我用的是git下载插件: git clone https://github.com/vhanla/SublimeTextTrans.g ...

  5. 关于png、背景透明疑难杂症综合帖

    前言 在web重构中,为了追求视觉效果,会经常使用标签背景透明.透明的png图片等,可惜ie6未死,所以经常会有这样那样的问题出现,下面我总结一下ie6下各种怪症和解决方法. 标签背景透明 常规方法 ...

  6. Android 自定义Dialog背景透明及显示位置设置

    先贴一下显示效果图,仅作参考: 代码如下: 1.自定义Dialog public class SelectDialog extends AlertDialog{public SelectDialog( ...

  7. WPF解决WindowsFormsHost背景透明

    项目案例:WPF使用WindowsFormsHost播放视频,视频上显示边框.字幕等特效: 难点问题 1.WindowsFormsHost不支持背景透明: 2.WPF Panel.ZIndex无效,W ...

  8. 关于Static控件背景透明时文本覆盖重影的问题

    2019独角兽企业重金招聘Python工程师标准>>> 关于Static控件背景透明时文本覆盖重影的问题 通过映射OnCtlColor消息,而后在该函数中使用pDC->SetB ...

  9. C# WinForm 自定义控件,DataGridView背景透明,TabControl背景透明

    注意: 以下代码,属性直接赋值的语法糖要vs2015以上才支持. 1 using System.ComponentModel; 2 using System.Drawing; 3 using Syst ...

最新文章

  1. 面试了一个 46 岁程序员,思绪万千
  2. CPD和DESCR文件查看
  3. 机器学习性能改善备忘单
  4. Debian 新负责人发表演讲:Debian 的现状与面临的一些问题
  5. Apollo进阶课程 ⑦ | 高精地图的采集与生产
  6. 猪八戒网的DevOps进化论
  7. CGCS2000 VS WGS84
  8. html点击发送qq邮箱_qq邮箱怎么发送文件夹
  9. bzoj1783: [Usaco2010 Jan]Taking Turns
  10. 阿里云高级专家王林平:云数据库的运维体系构建
  11. 接口自动化-get/post接口详解
  12. freeswitch cdr mysql_freeswitch XML CDRS
  13. C语言:丹尼斯·里奇的不朽遗产
  14. 黑马程序员--多线程
  15. Unity小地图的实现
  16. 打印和显示的字体种类
  17. 【p4】perforce命令笔记
  18. 苹果手机上滑动会卡顿_7种办法解决苹果手机卡顿 让你的手机用起来如丝般顺滑...
  19. 各种坐标系下坐标转换关系
  20. 搭积木(block)

热门文章

  1. 蚂蚁金服阳振坤:用10年时间打造一个“顶天立地”的产品
  2. 第一性原理(DFT)基础知识
  3. 微信一次性订阅消息流程
  4. protobuf详细介绍和使用
  5. 逆袭增长1300万播放,UP主仅靠20万粉登顶B站!
  6. 基于 mPaaS 框架 Portal-Bundle 接入方式下 Multidex 分包失效的解决方法
  7. 二十八、动词不定式 2 做表语、宾语、后置定语、状语
  8. 已入职今日头条!并附上8面面经
  9. c语言程序如何在keil中运行,keil c51中C程序的启动过程
  10. Windows Office 2019 很抱歉,此功能看似已中断,并需要修复