本文整理汇总了C++中gdiplus::Graphics::SetCompositingMode方法的典型用法代码示例。如果您正苦于以下问题:C++ Graphics::SetCompositingMode方法的具体用法?C++ Graphics::SetCompositingMode怎么用?C++ Graphics::SetCompositingMode使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类gdiplus::Graphics
的用法示例。
在下文中一共展示了Graphics::SetCompositingMode方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: SetCompositingMode
void Graphics::SetCompositingMode(CompositingMode cm) {
Gdiplus::CompositingMode gdiCm;
switch(cm) {
case CompositingModeSourceCopy:
gdiCm = Gdiplus::CompositingModeSourceCopy;
break;
case CompositingModeSourceOver:
default:
gdiCm = Gdiplus::CompositingModeSourceOver;
break;
}
Gdiplus::Graphics* g = reinterpret_cast<Gdiplus::Graphics*>(_private);
g->SetCompositingMode(gdiCm);
}
示例2: DrawString
bool PngOutlineText::DrawString(
Gdiplus::Graphics* pGraphics,
Gdiplus::FontFamily* pFontFamily,
Gdiplus::FontStyle fontStyle,
int nfontSize,
const wchar_t*pszText,
Gdiplus::Rect rtDraw,
Gdiplus::StringFormat* pStrFormat)
{
if(!pGraphics) return false;
if(m_bEnableShadow&&m_pBkgdBitmap&&m_pFontBodyShadow&&m_pShadowStrategy&&m_pShadowStrategyMask)
{
Gdiplus::Graphics* pGraphicsMask=NULL;
Gdiplus::Bitmap* pBmpMask=NULL;
Gdiplus::Graphics* pGraphicsDrawn=NULL;
Gdiplus::Bitmap* pBmpDrawn=NULL;
bool b = RenderTransShadowA( pGraphics, &pGraphicsMask, &pBmpMask, &pGraphicsDrawn, &pBmpDrawn);
if(!b) return false;
b = RenderFontShadow(
pGraphicsDrawn,
pGraphicsMask,
pBmpDrawn,
pBmpMask,
pFontFamily,
fontStyle,
nfontSize,
pszText,
Gdiplus::Rect(rtDraw.X+m_ptShadowOffset.X, rtDraw.Y+m_ptShadowOffset.Y,rtDraw.Width,rtDraw.Height),
pStrFormat);
if(!b)
{
delete pGraphicsMask;
delete pGraphicsDrawn;
delete pBmpDrawn;
return false;
}
b = RenderTransShadowB( pGraphics, pGraphicsMask, pBmpMask, pGraphicsDrawn, pBmpDrawn);
delete pGraphicsMask;
delete pGraphicsDrawn;
delete pBmpDrawn;
if(!b) return false;
}
if(m_pTextStrategy&&m_pTextStrategyMask)
{
Gdiplus::Graphics* pGraphicsPng = new Gdiplus::Graphics((Gdiplus::Image*)(m_pPngBitmap));
pGraphicsPng->SetCompositingMode(pGraphics->GetCompositingMode());
pGraphicsPng->SetCompositingQuality(pGraphics->GetCompositingQuality());
pGraphicsPng->SetInterpolationMode(pGraphics->GetInterpolationMode());
pGraphicsPng->SetSmoothingMode(pGraphics->GetSmoothingMode());
pGraphicsPng->SetTextRenderingHint(pGraphics->GetTextRenderingHint());
pGraphicsPng->SetPageUnit(pGraphics->GetPageUnit());
pGraphicsPng->SetPageScale(pGraphics->GetPageScale());
bool b = m_pTextStrategy->DrawString(
pGraphicsPng,
pFontFamily,
fontStyle,
nfontSize,
pszText,
rtDraw,
pStrFormat);
delete pGraphicsPng;
if(!b)
return false;
}
//pGraphics->DrawImage(m_pPngBitmap,0,0,m_pPngBitmap->GetWidth(),m_pPngBitmap->GetHeight());
return true;
}
示例3: RenderFontShadow
bool PngOutlineText::RenderFontShadow(
Gdiplus::Graphics* pGraphicsDrawn,
Gdiplus::Graphics* pGraphicsMask,
Gdiplus::Bitmap* pBitmapDrawn,
Gdiplus::Bitmap* pBitmapMask,
Gdiplus::FontFamily* pFontFamily,
Gdiplus::FontStyle fontStyle,
int nfontSize,
const wchar_t*pszText,
Gdiplus::Rect rtDraw,
Gdiplus::StringFormat* pStrFormat)
{
if(!pGraphicsDrawn||!pGraphicsMask||!pBitmapDrawn||!pBitmapMask) return false;
Gdiplus::Bitmap* pBitmapShadowMask =
m_pPngBitmap->Clone(0, 0, m_pPngBitmap->GetWidth(), m_pPngBitmap->GetHeight(), PixelFormat32bppARGB);
Gdiplus::Graphics* pGraphicsShadowMask = new Gdiplus::Graphics((Gdiplus::Image*)(pBitmapShadowMask));
Gdiplus::SolidBrush brushBlack(Gdiplus::Color(0,0,0));
pGraphicsShadowMask->FillRectangle(&brushBlack, 0, 0, m_pPngBitmap->GetWidth(), m_pPngBitmap->GetHeight() );
pGraphicsShadowMask->SetCompositingMode(pGraphicsDrawn->GetCompositingMode());
pGraphicsShadowMask->SetCompositingQuality(pGraphicsDrawn->GetCompositingQuality());
pGraphicsShadowMask->SetInterpolationMode(pGraphicsDrawn->GetInterpolationMode());
pGraphicsShadowMask->SetSmoothingMode(pGraphicsDrawn->GetSmoothingMode());
pGraphicsShadowMask->SetTextRenderingHint(pGraphicsDrawn->GetTextRenderingHint());
pGraphicsShadowMask->SetPageUnit(pGraphicsDrawn->GetPageUnit());
pGraphicsShadowMask->SetPageScale(pGraphicsDrawn->GetPageScale());
bool b = false;
b = m_pFontBodyShadowMask->DrawString(
pGraphicsMask,
pFontFamily,
fontStyle,
nfontSize,
pszText,
rtDraw,
pStrFormat);
if(!b) return false;
b = m_pShadowStrategyMask->DrawString(
pGraphicsShadowMask,
pFontFamily,
fontStyle,
nfontSize,
pszText,
rtDraw,
pStrFormat);
if(!b) return false;
b = m_pFontBodyShadow->DrawString(
pGraphicsDrawn,
pFontFamily,
fontStyle,
nfontSize,
pszText,
rtDraw,
pStrFormat);
if(!b) return false;
b = m_pShadowStrategy->DrawString(
pGraphicsDrawn,
pFontFamily,
fontStyle,
nfontSize,
pszText,
rtDraw,
pStrFormat);
if(!b) return false;
UINT* pixelsDest = NULL;
UINT* pixelsMask = NULL;
UINT* pixelsShadowMask = NULL;
using namespace Gdiplus;
BitmapData bitmapDataDest;
BitmapData bitmapDataMask;
BitmapData bitmapDataShadowMask;
Rect rect(0, 0, m_pBkgdBitmap->GetWidth(), m_pBkgdBitmap->GetHeight() );
pBitmapDrawn->LockBits(
&rect,
ImageLockModeWrite,
PixelFormat32bppARGB,
&bitmapDataDest );
pBitmapMask->LockBits(
&rect,
ImageLockModeWrite,
PixelFormat32bppARGB,
&bitmapDataMask );
pBitmapShadowMask->LockBits(
&rect,
//.........这里部分代码省略.........