zoukankan      html  css  js  c++  java
  • StretchBlt()与AlphaBlend()函数

    还是做个笔记吧,今天要用的时候,时间太久,忘记了怎么写了,又不想翻百度/Google,最后就在硬盘里翻了好一会。

    英文啊,英文, 啥时候能看英文比中文还顺畅。

    	BLENDFUNCTION blend;
    	blend.AlphaFormat=0;			//字段AlphaFormat有两个选择:0表示源位图中的所有像素使用同样的常量alpha值,
    									//即SourceConstantAlpha字段中的值,AC_SRC_ALPHA表示每个像素有各自的alpha通道。
    	blend.BlendFlags=0;				//BlendFalgs保留字段,必须是0
    	blend.BlendOp=AC_SRC_OVER;		//BlendOp字段指明了源混合操作,但只支持AC_SRC_OVER,即根据源alpha值把源图像叠加到目标图像上
    	blend.SourceConstantAlpha=50;	//0到255,0表示完全透明,255表示完全不透明
    	if(!AlphaBlend(hm_DC0,100,100,200,bitmap.bmHeight,DirectDC,0,0,bitmap.bmWidth,bitmap.bmHeight,blend))
    	{
    		MessageBox(L"Faild",L"AlphaBlend",MB_OK);
    	}
    	CString str	=L"//USER//bitblt//book.bmp/0";
    	CDC  dcMem2;
    	CBitmap bmp2;
    	dcMem2.CreateCompatibleDC(&dc);
    	bmp2.m_hObject=SHLoadDIBitmap(str);
    	dcMem2.SelectObject(&bmp2);		
    	//dc.BitBlt(100,100,121,129,&dcMem2,0,0,SRCCOPY);
    	dc.StretchBlt(200,200, 121,-129,&dcMem2,0,0,121,129,SRCCOPY);
    	dc.StretchBlt(200,200,-121,  30,&dcMem2,0,0,121,129,SRCCOPY);
    	dc.StretchBlt(200,200,-121,-129,&dcMem2,0,0,121,129,SRCCOPY);
    	dc.StretchBlt(200,200, 121,  30,&dcMem2,0,0,121,129,SRCCOPY);
    	dcMem2.DeleteDC();
    	bmp2.DeleteObject();
    /*
    	StretchBlt()函数支持图像的镜像显示,如果将目标区域的高度或宽度取为负值,就可以实现图像的镜像显示。
    	pDC->StretchBlt(100, 100,  48,  48, &BackDC, 0, 0, 48, 48, SRCCOPY);	// 显示正常图像
    	pDC->StretchBlt(100, 100, -48,  48, &BackDC, 0, 0, 48, 48, SRCCOPY);	// 显示水平对称图像
    	pDC->StretchBlt(100, 100,  48, -48, &BackDC, 0, 0, 48, 48, SRCCOPY);	// 显示垂直对称图像
    	pDC->StretchBlt(100, 100, -48, -48, &BackDC, 0, 0, 48, 48, SRCCOPY);	// 显示中心对称图像
    	*/
    

      


  • 相关阅读:
    腾讯云分配子域名
    回调函数
    caution
    科普知识图谱
    SQLServer 日期函数大全
    如何进行库存管理?
    SSIS高级转换任务—执行SQL语句
    运行SSIS包的几种方式
    SSIS+CDC 增量抽取数据
    Notepad++中没有Plugin Manager怎么办
  • 原文地址:https://www.cnblogs.com/ezhong/p/2171458.html
Copyright © 2011-2022 走看看