把bmp图片的白色区域转化称透明
来源:互联网 发布:网页美工与网页制作 编辑:程序博客网 时间:2024/04/28 16:34
HBITMAP hbmp, hmask; //图象及掩码句柄
int w, h; //图片宽和高
void Bitmap::Load(char *fn) //加载图片
{
DeleteObject(hbmp); //清空句柄
hbmp=(HBITMAP)LoadImage(
NULL,
fn, //完整文件路径
IMAGE_BITMAP,
0,
0,
LR_LOADFROMFILE | LR_CREATEDIBSECTION
);
DIBSECTION ds;
GetObject(hbmp, sizeof(ds), &ds); //得到图片矩形
w=ds.dsBmih.biWidth;
h=ds.dsBmih.biHeight;
}
void Bitmap::CreateMask() //创建掩码
{
hmask=CreateBitmap(w, h, 1, 1, NULL); //创建黑白图片
HDC bmpDC=CreateCompatibleDC(0);
HDC maskDC=CreateCompatibleDC(0);
SelectObject(bmpDC, hbmp);
SelectObject(maskDC, hmask);
SetBkColor(bmpDC, RGB(255,255,255)); //设置挖空的颜色
BitBlt(maskDC, 0, 0, w, h, bmpDC, 0, 0, SRCCOPY);//生成掩码
SetBkColor(bmpDC, RGB(0, 0, 0));
SetTextColor(bmpDC, RGB(255, 255, 255));
BitBlt(bmpDC, 0, 0, w, h, maskDC, 0, 0, SRCAND);//把挖空部分涂成黑色
DeleteDC(bmpDC);
DeleteDC(maskDC);
}
void Bitmap::Draw(HDC ddc, int dx=0, int dy=0, int dw=0, int dh=0, int sx=0, int sy=0)
{
if(!dw) dw=w;
if(!dh) dh=h;
HDC bmpDC=CreateCompatibleDC(ddc);
SelectObject(bmpDC, hbmp);
HDC maskDC=CreateCompatibleDC(ddc);
SelectObject(maskDC, hmask);
BitBlt(ddc, dx, dy, dw, dh, maskDC, sx, sy, SRCAND);
BitBlt(ddc, dx, dy, dw, dh, bmpDC, sx, sy, SRCPAINT);
DeleteDC(maskDC);
DeleteDC(bmpDC);
}
- 把bmp图片的白色区域转化称透明
- 如何把图片中白色的背景修改为透明的
- 图片的白色背景变透明
- 取得图片的透明区域
- Windows Mobile下画透明PNG图片的解决方案----把PNG转成BMP再画
- PS制作透明的BMP图片
- 如何把图片UIImageView某个区域变成透明
- 把android 中图片局部区域改为透明
- 把android中图片局部区域改为透明
- 白色边框透明背景的自定义图片背景
- PS 前端技能一 白色背景图片变为透明的图片
- 忽略图片透明区域的事件(Flex)
- 忽略图片透明区域的事件(Flex)
- C#把白色背景变成透明
- ps怎么把白色背景变透明
- BMP图片反转(黑色变白色,白色变黑色)
- 图片区域透明
- java 将图片白色部分透明
- Linux下MySQL的安装
- 35mm焦距和CCD关系
- 凸多边形三角划分(HNOI’97)
- HDU 1875 畅通工程再续
- LINUX VI 文件编辑器
- 把bmp图片的白色区域转化称透明
- 实例讲解如何才能让你的SQL运行得更快
- STM32(Cortex-M3)中的优先级概念
- 流程优化是要设置“停车场”
- IIS6.0应用程序池回收和工作进程
- 恢复LINUX的root密码
- Oracle卸载
- Struts标签-Logic
- 网页乱码