Direct2D 11 8bit 灰度图,求大佬~~!
2020-04-05 12:14
330 查看
`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;
代码比较乱,只是表示个意思哈,将就一下~
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- WP8 中 WIC, Direct2D, DirectWrite替代方案 (Direct3D 11 文字系统 Font Management)
- Direct2D能否在XP上运行
- Direct2D 第6篇 绘制多种风格的线条
- 总结--创建简单的Direct2D应用程序
- Direct2D教程(一)Direct2D已经来了,谁是GDI的终结者?
- Direct2D教程(一)
- Direct2D Intro - Flip and Rotate a Bitmap Source
- MSDN 教学短片 WPF 11(2D图形的变化(Transform))
- Direct2D (6) : 绘制质量(设置抗锯齿模式)
- Direct2D (15) : 剪辑
- Direct2D (23) : 复合几何对象之 ID2D1GeometryGroup
- Direct2D (29) : 简化曲线到直线 - ID2D1Geometry.Simplify()
- Direct2D (43) : IDWriteGdiInterop 接口
- Direct2D教程(五)复合图形
- Direct2d effects
- 在Unity中使用Direct2D
- Direct2D WIC绘制图片
- HTML5之SVG 2D入门11 - 动画
- MFC+Direct2D简化坐标缩放
- Direct2D 快速入门