【发布时间】:2013-02-05 05:25:06
【问题描述】:
我在这些段落之间有几段文字和几张图片。
现在,我想使用这些材料生成一张图片,将它们垂直合并。但是文本和图片的所有块的宽度不能大于生成图片的宽度,这意味着我必须缩小原始图片,并将每段文字填充成一个矩形以适应宽度。
这是困难的事情:
要确定包含文本的矩形的大小,我需要使用Graphics.MeasureString() 方法,该方法需要一个用于生成图片的 Graphics 实例(现在,我使用的是空白模板图片)。但直到弄清楚矩形和图片的所有尺寸后,我才知道这个 Graphics 的确切尺寸。
有没有什么方法可以在没有源图像的情况下获取 Graphics 的实例?
或者还有其他方法可以完成这项工作吗?
【问题讨论】:
-
Graphics中没有合适的静态方法? -
看来Graphics.FromImage() 就够了。我曾经认为这个方法返回的实例会被用来影响MeasureString()的返回值。事实证明,该实例与 MeasureString() 无关。我从大小为 (1, 1) 的位图中获取 Graphics 实例,而 MeasureString() 工作得很好!我得到另一个实例作为背景来生成图片 \^o^/
-
如果您没有原始图像但您知道它的大小,您也可以将
Image创建为new Bitmap(width, height)并将其用作Graphics.FromImage()方法中的模拟对象。
标签: c# wpf image image-processing