本文整理汇总了C++中CNode::GetByteArray方法的典型用法代码示例。如果您正苦于以下问题:C++ CNode::GetByteArray方法的具体用法?C++ CNode::GetByteArray怎么用?C++ CNode::GetByteArray使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CNode
的用法示例。
在下文中一共展示了CNode::GetByteArray方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: if
//.........这里部分代码省略.........
BYTE byGreenResult = pAlphaInv[pDest->GetGreen()] + byGreen;
BYTE byBlueResult = pAlphaInv[pDest->GetBlue()] + byBlue;
*pDest++ = CG32bitPixel(byRedResult, byGreenResult, byBlueResult);
}
}
}
else
{
// Blend the alphas together
BYTE byFillAlpha = CG32bitPixel::BlendAlpha(byAlpha, rgbColor.GetAlpha());
BYTE *pAlpha = CG32bitPixel::AlphaTable(byFillAlpha);
BYTE *pAlphaInv = CG32bitPixel::AlphaTable(byFillAlpha ^ 0xff);
BYTE byRed = pAlpha[rgbColor.GetRed()];
BYTE byGreen = pAlpha[rgbColor.GetBlue()];
BYTE byBlue = pAlpha[rgbColor.GetGreen()];
while (pDest < pDestEnd)
{
BYTE byRedResult = pAlphaInv[pDest->GetRed()] + byRed;
BYTE byGreenResult = pAlphaInv[pDest->GetGreen()] + byGreen;
BYTE byBlueResult = pAlphaInv[pDest->GetBlue()] + byBlue;
*pDest++ = CG32bitPixel(byRedResult, byGreenResult, byBlueResult);
}
}
break;
}
case typeByteArray:
{
BYTE *pSrcAlpha = pSrcRow->GetByteArray() + xOffset;
BYTE *pSrcAlphaEnd = pSrcAlpha + cxTileLeft;
BYTE byColorAlpha = rgbColor.GetAlpha();
if (byColorAlpha == 0xff)
{
while (pSrcAlpha < pSrcAlphaEnd)
{
if (*pSrcAlpha == 0x00)
{}
else if (*pSrcAlpha == 0xff)
*pDest = rgbColor;
else
{
BYTE *pAlpha = CG32bitPixel::AlphaTable(*pSrcAlpha);
BYTE *pAlphaInv = CG32bitPixel::AlphaTable(*pSrcAlpha ^ 0xff);
BYTE byRedResult = pAlphaInv[pDest->GetRed()] + pAlpha[rgbColor.GetRed()];
BYTE byGreenResult = pAlphaInv[pDest->GetGreen()] + pAlpha[rgbColor.GetGreen()];
BYTE byBlueResult = pAlphaInv[pDest->GetBlue()] + pAlpha[rgbColor.GetBlue()];
*pDest = CG32bitPixel(byRedResult, byGreenResult, byBlueResult);
}
pSrcAlpha++;
pDest++;
}
}
else
{
BYTE *pAlphaFFInv = CG32bitPixel::AlphaTable(byColorAlpha ^ 0xff);
while (pSrcAlpha < pSrcAlphaEnd)