Example #1
0
void CBCStroke::Draw(FCObjImage& img,float zoompaper,float zoompress)
{
	if(m_bezStroke.empty())
		return;
	FCObjImage imgBlock;
	RECT rcTmp;
	rcTmp.bottom=m_rcSave.bottom*zoompaper;
	rcTmp.left=m_rcSave.left*zoompaper;
	rcTmp.right=m_rcSave.right*zoompaper;
	rcTmp.top=m_rcSave.top*zoompaper;
	img.GetSubBlock (&imgBlock,rcTmp);
	
//	if(m_Undo.IsValidImage()==false)
//		m_Undo=imgBlock;
	// 制作大小一样的alpha位图,注意:位图数据初始化为0(也即黑色)
	FCObjImage		imgAlpha (imgBlock.Width(), imgBlock.Height(), 8) ;

	Draw(imgAlpha,255,zoompaper,zoompress);
	
	// 制作纯色位图
	FCObjImage          imgCover (imgBlock.Width(), imgBlock.Height(), 32) ;
	RGBQUAD c;
	c.rgbRed=GetRValue(m_c);
	c.rgbGreen=GetGValue(m_c);
	c.rgbBlue=GetBValue(m_c);
	FCPixelFillColor    cmdFillCr(c) ;
	imgCover.SinglePixelProcessProc (cmdFillCr) ;
	imgCover.AppendAlphaChannel (imgAlpha) ;

	imgBlock.CombineAlphaImg (imgCover);
	img.CoverBlock(imgBlock,rcTmp.left,rcTmp.top);
	//std::sort(
}