4

Direct2D を使用して透明なビットマップを作成し、デバイス コンテキストを使用してその上に描画する必要があります。

ID2D1DeviceContext1* d2dContext = ...
ID2D1Bitmap* pBitmap;

d2dContext->CreateBitmap(
    bitmapSize,
    nullptr,
    0,
    D2D1::BitmapProperties1(
        D2D1_BITMAP_OPTIONS_TARGET,
        D2D1::PixelFormat(DXGI_FORMAT_B8G8R8A8_UNORM, D2D1_ALPHA_MODE_PREMULTIPLIED),
        dpiX, dpiY),
    &pBitmap);

d2dContext->BeginDraw();
d2dContext->SetTarget(pBitmap);
d2dContext->Clear(D2D1::ColorF(0, 0));
d2dContext->DrawLine(...);
hr = d2dContext->EndDraw();

残念ながら、透明なビットマップを作成することはできません。を含むいくつかのピクセル形式の組み合わせを試しましD2D1_ALPHA_MODE_STRAIGHTたが、成功しませんでした。

解決策はありますか?

4

2 に答える 2