Я работаю над программой, которая должна изменить то, что уже есть на экране. Поэтому у меня есть только ID2D1Bitmap
, который я создал с помощью pRenderTarget->CopyFromRenderTarget
.Direct2D: конвертировать ID2D1Image в ID2D1Bitmap
Что я пытаюсь сделать, применяя эффекты к этому растровому изображению. Эффект возвращает ID2D1Image
, но мне нужно иметь ID2D1Bitmap
.
Есть ли способ сделать это?
Edit1:
ID2D1Bitmap* myBitmap //the bitmap I want to apply the effect to
ID2D1Effect* effect = NULL;
pDeviceContext->CreateEffect(CLSID_D2D1Saturation, &effect);
effect->SetValue(D2D1_SATURATION_PROP_SATURATION, 0.0f);
effect->SetInput(0, myBitmap);
ID2D1Image* pImg = NULL;
effect->GetOutput(&pImg);
Если я бросаю эту картинку, getPixelSize() вызывает нарушение доступа.
просто бросить ID2D1Image как ID2D1Bitmap –
Нет, это бросает нарушение доступа. Можно отливать из ID2D1Bitmap в ID2D1Image, поскольку интерфейс ID2D1Bitmap наследуется от ID2D1Image. Но не наоборот. –
Просьба поделиться фрагментом кода, как вы создаете и применяете эффект (ы). –