zoukankan      html  css  js  c++  java
  • c/c++设置图片为透明图

    在绘制图片的时候先把源位图填充背景设置为白色  

    例如:m_bufferpicture.FillSolidRect(0,0,m_nWidth,m_nHeight,RGB(255,255,255));//这里把设置源位图背景为白色

    然后再使用

    TransparentBlt()函数

    函数功能:该函数对指定的源设备环境中的矩形区域像素的颜色数据进行位块(bit_block)转换,并将结果置于目标设备环境。
    函数原型:BOOL TransparentBlt(HDC hdcDest, int nXOriginDest, int nYOriginDest, int nWidthDest, int hHeightDest, HDC hdcSrc, int nXOriginSrc, int nYOriginSrc, int nWidthSrc, int nHeightSrc, UINT crTransparent);
    参数:
    hdcDest:指向目标设备环境的句柄。
    nXOriginDest:指定目标矩形左上角的X轴坐标,坐标以逻辑单位表示。
    nYOriginDest:指定目标矩形左上角的Y轴坐标,坐标以逻辑单位表示。
    nWidthDest:指定目标矩形的宽度。
    nHeightDest:指定目标矩形的高度。
    hdcsrc:指向源设备环境的句柄。
    nXOriginSrc:指定源矩形(左上角)的X轴坐标,坐标以逻辑单位表示。
    nYOriginsrc:指定源矩形(左上角)的Y轴坐标,坐标以逻辑单位表示。
    nWidthSrc:指定源矩形的宽度。
    nHeightSrc:指定源矩形的高度。
    crTransparent:源位图中的RGB值当作透明颜色。(用RGB(0,0,0)也就是黑色不行)返回值:如果函数执行成功,那么返回值为TRUE;如果函数执行失败,那么返回值为FALSE。
    Windows NT:若想获取更多错误信息,请调用GetLastError函数。
    备注:函数TransparentBlt支持4位/像素和8位/像素格式的源位图,使用AlphaBlend可以指定带有透明度的32位/像素格式的位图。如果源和目标矩形的大小不一致,那么将对源位图进行拉伸以与目标矩形匹配,当使用SetStretchBltMode函数时,BLACKONWHITE和WHITEONBLACK两种iStretchMode模式将被转换成TransparentBlt函数的COLORONCOLOR模式。目标设备环境指定了用于目标坐标的变换类型,而源设备环境指定了源坐标使用的变换类型。如果源位图或目标位图的宽度或高度是负数,那么TransparentBlt函数也不对位图进行镜像。
    例如:

    pDC->TransparentBlt(ptLeftTop.x, ptLeftTop.y, m_nWidth, m_nHeight, &m_bufferpicture, 0, 0, m_nWidth, m_nHeight,RGB(255,255,255));//把源位图中的白色背景设置为透明色

  • 相关阅读:
    微信公众平台接口获取时间戳为10位,java开发需转为13位
    redis实现哨兵机制
    redis配置主从复制
    C 语言字符 和字符串输出
    C 小写字母编程大写并输出
    C语言计算机器运行时间
    C 猜数游戏
    C 产生随机码 (输入数字来产生)
    C 产生随机码
    C 语言链表操作例程 (待完善)
  • 原文地址:https://www.cnblogs.com/lisuyun/p/3399272.html
Copyright © 2011-2022 走看看