c_cpp 使用GDI +组合图像

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 使用GDI +组合图像相关的知识,希望对你有一定的参考价值。

VOID OnPaint_TryCombineImage(HDC hdc)
{
    Graphics graphics(hdc);
    Image image(L"qrcode1.bmp");
    CLSID clsid;
    Status status;
    UINT  num;        // number of image encoders
    UINT  size;       // size, in bytes, of the image encoder array
    ImageCodecInfo* pImageCodecInfo;

    Bitmap bitmap(image.GetWidth()*3, image.GetHeight(), PixelFormat24bppRGB);
    Graphics* pg = Graphics::FromImage(&bitmap);
    SolidBrush solidBrush(Color(255, 255, 255, 255));

    pg->FillRectangle(&solidBrush, 0, 0, image.GetWidth()*3, image.GetHeight());
    pg->DrawImage(&image, 0, 0);
    pg->DrawImage(&image, 200, 0);

    CachedBitmap cachedBitmap(&bitmap, &graphics);
    graphics.DrawCachedBitmap(&cachedBitmap, 0, 0);

    GetImageEncodersSize(&num, &size);
    pImageCodecInfo = (ImageCodecInfo*)(malloc(size));
    GetImageEncoders(num, size, pImageCodecInfo);
    clsid = pImageCodecInfo[0].Clsid;

    status = bitmap.Save(L"output.bmp", &clsid, NULL);
    printf("status=%d\n", status);

    delete pg;
}

以上是关于c_cpp 使用GDI +组合图像的主要内容,如果未能解决你的问题,请参考以下文章

使用 GDI() 仅保留图像的红色通道

c++ 使用新的图像 gdi+

向使用 GDI+ 绘制的图像添加文本

在 .NET 中使用 GDI 调整图像大小会降低饱和度

使用 gdiplus 打印 png24 图像时 GDI 内存泄漏

c_cpp 使用按键控制图像