是否有可能在 1bpp 位图上使用 Graphics.DrawString?

发布于 2024-12-07 20:39:44 字数 703 浏览 0 评论 0 原文

这个问题是很不言而喻的,我想使用 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 完全消亡一样

有什么想法吗?

The question is quite self explicative, I would like to use a 1bpp Bitmap because will help me (a lot) talking with a device that accept 1bbp bitmaps (well, 160x43 byte array that is a 160x43 bitmap image with 1bpp format).

While C# allows me to create 1bpp bitmaps, I would like to work on it with a Graphics object. But the program seems to behave strangely when I do any operation on this.

Is possible to do some graphic operations on those type of bitmaps?

my code snippet is quite short:

    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));
        } 

When I do anything related to bitmaps after those calls. My bitmaps doesn't change (obviusly I'm talking about other bitmaps). Like if GDI is totally dead

Any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

烟─花易冷 2024-12-14 20:39:44

Graphics 类和 Graphics.FromImage 方法不支持索引位图。请参阅 Graphics.FromImage 方法文档rel="nofollow noreferrer">MSDN。解决您的问题的方法是对受支持的位图格式(例如 PixelFormat.Format32bppRgb)执行所有图形操作,然后将位图转换为索引位图。转换很简单。您可以在此处找到此类转换的示例

希望这有帮助。

The Graphics class and the Graphics.FromImage method do not support indexed bitmaps. Please refere to the documentation for the Graphics.FromImage method on MSDN. A workaround for your problem would be to do all graphic operations on a supported bitmap format such as PixelFormat.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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文