是否有可能在 1bpp 位图上使用 Graphics.DrawString?
这个问题是很不言而喻的,我想使用 1bpp 位图,因为这将帮助我(很多)与接受 1bbp 位图的设备进行对话(嗯,160x43 字节数组,是 1bpp 格式的 160x43 位图图像)。
虽然 C# 允许我创建 1bpp 位图,但我想使用 Graphics 对象来处理它。但是当我对此进行任何操作时,程序似乎表现得很奇怪。
可以对这些类型的位图进行一些图形操作吗?
我的代码片段非常短:
Bitmap bwImage = new Bitmap(160, 43, System.Drawing.Imaging.PixelFormat.Format1bppIndexed);
using (Graphics g = Graphics.FromImage(bwImage))
{
g.FillRectangle(Brushes.White, new Rectangle(0, 0, 160, 43));
g.DrawString("ciao sono francesco", Font, Brushes.Black, new RectangleF(0f, 0f, 159f, 42f));
}
当我在这些调用之后执行与位图相关的任何操作时。我的位图没有改变(显然我正在谈论其他位图)。就像 GDI 完全消亡一样
有什么想法吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Graphics
类和Graphics.FromImage
方法不支持索引位图。请参阅 Graphics.FromImage 方法文档rel="nofollow noreferrer">MSDN。解决您的问题的方法是对受支持的位图格式(例如 PixelFormat.Format32bppRgb)执行所有图形操作,然后将位图转换为索引位图。转换很简单。您可以在此处找到此类转换的示例。希望这有帮助。
The
Graphics
class and theGraphics.FromImage
method do not support indexed bitmaps. Please refere to the documentation for theGraphics.FromImage
method on MSDN. A workaround for your problem would be to do all graphic operations on a supported bitmap format such asPixelFormat.Format32bppRgb
and then convert the bitmap to a indexed bitmap. The conversion is straightforward. You will find a example of such a conversion here.Hope, this helps.