Поделиться через


Создание точечных кистей

Чтобы создать кисть растрового рисунка, используйте метод ID2D1RenderTarget::CreateBitmapBrush и укажите свойства кисти растрового рисунка. Некоторые перегрузки позволяют указать свойства кисти. В следующем коде показано, как создать кисть растрового рисунка для заполнения квадрата и сплошную черную кисть для рисования контура квадрата. Код создает выходные данные, показанные на следующем снимке экрана.

Примечание

Начиная с Windows 8, вы можете использовать метод CreateBitmapBrush в интерфейсе ID2D1DeviceContext для создания ID2D1BitmapBrush1 вместо ID2D1BitmapBrush. ID2D1BitmapBrush1 добавляет режимы масштабирования высокого качества кисти растрового рисунка.

 

Снимок экрана: квадрат, заполненный растровым изображением растения

  1. Объявите переменную типа ID2D1BitmapBrush.

        ID2D1BitmapBrush *m_pBitmapBrush;
    
  2. Загрузка растрового изображения из ресурса. Дополнительные сведения см. в разделе Загрузка растрового изображения из ресурса.

    // Create the bitmap to be used by the bitmap brush.
    if (SUCCEEDED(hr))
    {
        hr = LoadResourceBitmap(
            m_pRenderTarget,
            m_pWICFactory,
            L"FERN",
            L"Image",
            &m_pBitmap
            );
    
  3. Выберите режимы расширения (D2D1_EXTEND_MODE) и режим интерполяции (D2D1_BITMAP_INTERPOLATION_MODE) кисти растрового рисунка, а затем вызовите метод CreateBitmapBrush , чтобы создать кисть, как показано в следующем коде.

    hr = m_pRenderTarget->CreateBitmapBrush(
        m_pBitmap,
        &m_pBitmapBrush
        );
    

Справочник по Direct2D