当前位置: 首页>>代码示例>>C++>>正文


C++ ImgFile_Ptr::GetDrawMaskImg方法代码示例

本文整理汇总了C++中ImgFile_Ptr::GetDrawMaskImg方法的典型用法代码示例。如果您正苦于以下问题:C++ ImgFile_Ptr::GetDrawMaskImg方法的具体用法?C++ ImgFile_Ptr::GetDrawMaskImg怎么用?C++ ImgFile_Ptr::GetDrawMaskImg使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ImgFile_Ptr的用法示例。


在下文中一共展示了ImgFile_Ptr::GetDrawMaskImg方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: AddEditNode

/*!
	pNodeを加算する。
	@param[in] pNode
	@param[in] lprc 更新範囲
*/
void ImgLayer::AddEditNode(EditNode *pNode, const LPRECT lprc)
{
	if(!pNode) return;

	RECT rc; 
	if (lprc) {
		//更新範囲とコピー先範囲の論理積
		AndRect(lprc, &(pNode->blt_rect), &rc);
	}
	else {
		rc = pNode->blt_rect;
	}

	if (!pNode->isBakedWriteMap) {
		//blt undo image
		BltLayerUndoOp bltLayerUndoOp;
		AllMaskOp allMaskOp;
		pNode->undo_img.OperateBlt<BltLayerUndoOp, AllMaskOp>(
			bltLayerUndoOp,
			allMaskOp,
			rc.left - pNode->node_rect.left,
			rc.top - pNode->node_rect.top,
			rc.right - rc.left,
			rc.bottom - rc.top,
			m_Img,
			rc.left - m_LayerRect.left,
			rc.top - m_LayerRect.top,
			&(pNode->write_map),
			rc.left - pNode->node_rect.left,
			rc.top - pNode->node_rect.top);
		
		//write pixel mark
		WritePixelMark writePixelMark;
		NormMaskOp normMaskOp;
		pNode->write_map.OperateBlt<WritePixelMark, NormMaskOp>(
			writePixelMark,
			normMaskOp,
			rc.left - pNode->node_rect.left,
			rc.top - pNode->node_rect.top,
			rc.right - rc.left,
			rc.bottom - rc.top,
			NULL,
			0,
			0,
			&(pNode->edit_img),
			rc.left - pNode->node_rect.left,
			rc.top - pNode->node_rect.top);
	}

	//blt edit image
	const IplImage* mask = NULL;
	ImgFile_Ptr pParentFile = this->GetParentFile().lock();
	if (pParentFile->GetMaskState() == IE_MASK_STATE_ID::VALID) {
		mask = pParentFile->GetDrawMaskImg();
	}

	if (!m_IsLockPixelAlpha) {
		LayerSynthesizerMG::BlendSynth<NormalCopy>(
			pNode->fourcc,
			1.0,
			m_Img,
			rc.left - m_LayerRect.left,
			rc.top - m_LayerRect.top,
			rc.right - rc.left,
			rc.bottom - rc.top,
			&(pNode->undo_img),
			rc.left - pNode->node_rect.left,
			rc.top - pNode->node_rect.top,
			&(pNode->edit_img),
			rc.left - pNode->node_rect.left,
			rc.top - pNode->node_rect.top,
			mask,
			rc.left,
			rc.top);
	} else {
		LayerSynthesizerMG::BlendSynth<AlphaLockCopy>(
			pNode->fourcc,
			1.0,
			m_Img,
			rc.left - m_LayerRect.left,
			rc.top - m_LayerRect.top,
			rc.right - rc.left,
			rc.bottom - rc.top,
			&(pNode->undo_img),
			rc.left - pNode->node_rect.left,
			rc.top - pNode->node_rect.top,
			&(pNode->edit_img),
			rc.left - pNode->node_rect.left,
			rc.top - pNode->node_rect.top,
			mask,
			rc.left,
			rc.top);
	}
}
开发者ID:,项目名称:,代码行数:99,代码来源:


注:本文中的ImgFile_Ptr::GetDrawMaskImg方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。