18得票5回答
我应该在每个绘画请求中创建新的笔刷/画笔,还是在整个应用程序生命周期内保留它们?

我有一个应用程序,它进行了很多绘图,假设它是一个类似于Visio的应用程序。它有一些具有多个子对象的对象,这些对象可以被绘制,连接,调整大小等。目前,当我对特定的子对象或对象调用paint方法时,我会执行以下操作:using(var pen = new Pen(this.ForeColor))...

18得票4回答
在.NET中绘制文本

我正在进行一些有关在.Net中绘制文本的测试,并得到了以下结果。 第一个字符串是原生的标签,FlatStyle设置为System 第二个字符串是使用Graphics.DrawString()方法绘制的 最后一个字符串是使用TextRenderer.DrawText()方法绘制的 所...

18得票5回答
MeasureString()函数会在文本的左右两侧添加空白。

我在使用C++中的GDI+(这个问题也可能存在于C#中)。 我发现每当我调用Graphics::MeasureString()或Graphics::DrawString()时,字符串左右两侧会填充空格。 例如,如果我使用Courier字体(不是斜体!),并测量“P”,我得到90,但“PP”...

18得票4回答
Graphics.DrawString 和 TextRenderer.DrawText 哪个可以提供更好的质量?

TextRenderer基于GDI,而Graphics.DrawString基于GDI+。在绘制图像时,这两个函数哪一个可以实现更好质量的文本呢?

18得票6回答
处理字体文件真的有必要吗?

我知道最佳实践是调用任何实现IDisposable的对象的Dispose方法,特别是包装有限资源(如文件句柄、套接字、GDI句柄等)的对象。 但我遇到了一个问题,我有一个带有Font的对象,如果我要让Font得到释放,我必须通过多个对象图层传递IDisposable,并检查很多用法。我在想这...

17得票1回答
什么原因导致Calibri在9到14磅之间失去ClearType效果?

GDI+在使用默认的Microsoft Office字体Calibri时,具有ClearTypeGridFit指定的大小在9pt和14pt之间时切换到二进制抗锯齿。这是什么原因呢? 这有些令人不安。还有多少其他字体也受到此背后的影响,并且在哪些大小下受到影响?是否有解决方法?(排除GDI,它...

17得票2回答
System.Drawing.Graphics.DrawString - "Parameter is not valid"异常

有时候,微软的异常消息让人非常恼火。我创建了一个很好的MVC方法来呈现文本。该方法的主体如下。当它到达“DrawString”方法时,我会收到一个抛出的异常,提示“参数无效”。 请注意,字体(据我所知只是使用10pt Arial),矩形大小是正面有效的,刷子是白色的SolidBrush,格式...

17得票4回答
从字节数组中获取图像对象

我有一个存储在数据库中的图像的字节数组。我想创建一个Image对象,创建几个不同尺寸的图像,并将它们存储回数据库(保存回一个字节数组)。 我不担心数据库部分或调整大小的部分。但是是否有一种简单的方法可以加载Image对象而不必将文件保存到文件系统,然后在完成调整大小后将其放回字节数组中?如果...

17得票2回答
在SVG图像中使用屏幕坐标进行命中测试,转换为世界坐标

如何使用GDI+将鼠标坐标转换为世界坐标?或者得到使用GDI+绘制的SVG形状的边界框(或者更好的方式)? 无论如何,我一直在寻找SVG代码,并找到了: http://development.mwcs.de/svgimage.html 这是第一个真正可用于SVG的Delphi组件,但我偏离...

17得票2回答
什么是最快的GDI+渲染设置?

有很多关于呈现高质量图形的帖子,比如这篇: 高质量图像缩放库 我需要在使用GDI+绘制约6k个线条和椭圆的图形时,以大约10fps的帧率呈现。因此,我需要我的图形具有尽可能低的质量属性。 这是我所做的:public static class GraphicsExtensions { ...