如何使用PNG图像创建图案画笔

时间:2017-11-06 06:39:35

标签: c++ mfc

我在白色背景中有黑点的图像,我用它来创建一个模板画笔并使用SetTextColor更改黑点的颜色。所以我使用PNG图像创建了一个CBitmap(我使用CPngImage获取HBITMAP并将其附加到CBitmap)。现在我使用(CreatePatternBrush)创建了具有该位图的PatternBrush,问题是如果我使用PNG图像,画笔的颜色不会改变。但是当我使用bmp格式的图像时它会改变。

这是一些代码

CBitmap bmp;
if (bmp.LoadBitmap(IDB_BITMAP1))
{
   if (brush.CreatePatternBrush(&bmp))
   pOldBrush = pDC->SelectObject(&brush);
}

pDC->SetTextColor(color);

本作品

 CBitmap bmp;
    CPngImage pngImage;
    HBITMAP hBitmap = NULL;

    if ( pngImage.Load(MAKEINTRESOURCE(IDB_PNG1)) )
    {
       hBitmap = (HBITMAP)pngImage.Detach();
    }


    if ( hBitmap )
      bmp.Attach(hBitmap);

    if (brush.CreatePatternBrush(&bmp))
      pOldBrush = pDC->SelectObject(&brush);

    pDC->SetTextColor(color);

这不起作用

0 个答案:

没有答案