【发布时间】:2015-09-16 01:50:33
【问题描述】:
我正在开发一个需要修改屏幕上已有内容的程序。
所以我只有一个使用pRenderTarget->CopyFromRenderTarget 创建的ID2D1Bitmap。
我想要做的是,将效果应用于该位图。效果只返回ID2D1Image,但我需要有一个ID2D1Bitmap。
有没有办法做到这一点?
编辑1:
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。但反之则不然。
-
请分享一个代码 sn-p 你是如何创建和应用效果的。
标签: c++ image visual-c++ direct2d