32位BMP带通道的透明图转化24位BMP带通道透明图问题

首先说明谁说BMP不可以透明?别这么和我说我已经用PS的通道实现了但问题来了,我现在只能保存32位的带通道的透明BMP文件,我如何保存24位的BMP仍然可以带通道透明效果以下是在网上已经有人解决的方法,不过我不搞编程。这东西实在是看不懂,如果有明白的可以说下是在什么东西里,编写什么命令语句最好

 

---------------------------------------------------------------------

 

RGB24  

  RGB24使用24位来表示一个像素,RGB分量都用8位表示,取值范围为0-255。注意在内存中RGB各分量的排列顺序为:BGR BGR BGR…。通常可以使用RGBTRIPLE数据结构来操作一个像素,它的定义为:  

typedef struct tagRGBTRIPLE {

  BYTE rgbtBlue; // 蓝色分量

  BYTE rgbtGreen; // 绿色分量

  BYTE rgbtRed; // 红色分量

  } RGBTRIPLE;

 

 

RGB32

  RGB32使用32位来表示一个像素,RGB分量各用去8位,剩下的8位用作Alpha通道或者不用。(ARGB32就是带Alpha通道的RGB32。)注意在内存中RGB各分量的排列顺序为:BGRA BGRA BGRA…。通常可以使用RGBQUAD数据结构来操作一个像素,它的定义为:  typedef struct tagRGBQUAD {

  BYTE rgbBlue; // 蓝色分量

  BYTE rgbGreen; // 绿色分量

  BYTE rgbRed; // 红色分量

  BYTE rgbReserved; // 保留字节(用作Alpha通道或忽略)

  } RGBQUAD。

就是多了一个透明通道,直接右移8为丢掉这个8位信息就可以了

----------------------------------------------------------------------------

所以只要移除透明的分量就ok:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值