`Direct2D 11 8bit 灰度图,求大佬~~!`
现在我有一个8bit的bmp灰度图的buffer,要求使用D2D bitmap搞出来
自己尝试后发现只有WIC的Format才支持8bit灰度,D2D的位图创建里面没有
已经有一种解决办法是修改buffer,使原8bit单通道变成RGBA 32bit 4通道,
就能用DXGI_FORMAT_R8G8B8A8_UNORM这个枚举成功创建位图实例
但是同样的值多存了3份,这个就有点过分了。。所以我想知道还有没有其他方法
拜托各位大佬了,给你们下跪了
:ஐ٩(๑´ᵕ`)۶ஐ:
LONG width = 0, height = 0;
WORD bitCount = 0;
RGBQUAD* quad = NULL;
//这里是模拟外面传进来的buffer
unsigned char* buffer = readBmp("F://F5Z//D3D_test//D3D_x64//Picture//test3.bmp", &width, &height, &bitCount, quad);
//转32位RGBA位图数据
ChangeTo32bitGrayBitMap(buffer, width, height);
ComPtr<ID2D1Bitmap> tmp = NULL;
//指定RGB格式
D2D1_PIXEL_FORMAT pixelFormat = D2D1::PixelFormat(
DXGI_FORMAT_B8G8R8A8_UNORM,
D2D1_ALPHA_MODE_IGNORE
);
//设置属性
D2D1_BITMAP_PROPERTIES property;
property.pixelFormat = pixelFormat;
property.dpiX = 0;
property.dpiY = 0;
D2D1_SIZE_U size;
size.width = width;
size.height = height;
bitCount = 32;
m_d2drender->CreateBitmap(
size,
buffer,
bitCount / 8 * width,
property,
&tmp
);
delete[] buffer;
代码比较乱,只是表示个意思哈,将就一下~
博主在博客中寻求帮助,关于使用Direct2D 11进行8位灰度图像处理时遇到困扰,希望社区的大佬能提供指导。代码展示可能不够清晰,但博主表达了急切需求。
4496

被折叠的 条评论
为什么被折叠?



