⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 图像的3d灰度显示.txt

📁 19Kinds_image_arithmath 19种图像基本算法
💻 TXT
字号:
//参数说明:nXDest、nYDest显示位图的左上角坐标
// nWidth、nHeight棗显示位图的宽与高
// hDIB棗位图句柄
// nXSrc、nXSrc棗源位图左上角坐标
void DrawGray3D (CDC *pDC, int nXDest, int nYDest, int nWidth, int nHeight, HBITMAP hDIB, int nXSrc, int nYSrc)

{
	if(nWidth <= 0 || nHeight <= 0)
		return;
	CDC memDC ;
	memDC.CreateCompatibleDC(pDC);
	CDC BWDC ;
	BWDC.CreateCompatibleDC(pDC);
	//生成黑白位图与黑白调色板
	//定义黑白位图信息头
	struct {
		BITMAPINFOHEADER bmiHeader;
		RGBQUAD bmiColors[2];
	} BWBITMAPINFO = {
		{ sizeof(BITMAPINFOHEADER),	nWidth,	nHeight, 1,	1,
			BI_RGB,	0,	0,	0,	0,	0
		},
		{//定义黑白颜色
			{ 0x00, 0x00, 0x00, 0x00 }, { 0xFF, 0xFF, 0xFF, 0x00 }
		}
	};
	VOID *pbitsBW;
	HBITMAP hDIBBW = CreateDIBSection(BWDC.m_hDC,
		(LPBITMAPINFO)&BWBITMAPINFO, DIB_RGB_COLORS, &pbitsBW, NULL, 0);
	if (hDIBBW)
	{
		SelectObject(BWDC.m_hDC, hDIBBW);
		SelectObject(memDC.m_hDC, hDIB);
		//将彩色位图拷贝到黑白位图中.
		BWDC.BitBlt(0, 0, nWidth, nHeight, &memDC, nXSrc, nYSrc, SRCCOPY);
		//绘制衬底
		FillRect(pDC->m_hDC,CRect(nXDest, nYDest, nXDest + nWidth, nYDest +nHeight), GetSysColorBrush(COLOR_3DFACE));
		//使用COLOR_3DHILIGHT画刷,0xB88888光栅显示黑白位图到视.
		CBrush hb1,hb2;
		CBrush *oldBrush ;
		hb1.CreateSolidBrush(GetSysColor(COLOR_3DHILIGHT));
		oldBrush=pDC->SelectObject(&hb1);
		pDC->BitBlt( nXDest + 1, nYDest + 1, nWidth, nHeight, &BWDC, 0, 0,0xB88888 );
		hb2.CreateSolidBrush(GetSysColor(COLOR_3DSHADOW));
		pDC->SelectObject(&hb2);
		//使用COLOR_3DSHADOW画刷,0xB88888光栅显示黑白位图到视,形成3D位图.
		pDC->BitBlt( nXDest, nYDest, nWidth, nHeight, &BWDC, 0, 0,0xB88888);
		pDC->SelectObject(oldBrush);
	}
}   

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -