我有一个图像,我正在调整大小,drawString和FillEllipse
。
有很多点(FillEllipse)需要显示n
位图,所以我使用for
循环。
下面是代码:加载位图需要很长的时间
using (System.Drawing.Graphics Gfx = System.Drawing.Graphics.FromImage(OrginalBitmap))
{
Gfx.SmoothingMode = SmoothingMode.HighQuality;
Gfx.CompositingQuality = CompositingQuality.HighQuality;
Gfx.InterpolationMode = InterpolationMode.HighQualityBicubic;
Gfx.PixelOffsetMode = PixelOffsetMode.HighQuality;
foreach (var points in SelectedPoints)
{
Gfx.FillEllipse(
Brushes.Yellow,new Rectangle(points.X , points.Y, 8, 8));
Gfx.DrawString("M", new Font("Arial",8),
Brushes.Yellow, points.X, points.Y);
//points.X and points.X are the points that needs to be drawn on bitmap(particular location).
}
}
((IDisposable)OrginalBitmap).Dispose;
加载绘制位图的需要,如果有在SelectedPoints多点时间很长。 性能急剧下降,加载占用太多内存。 请让我知道该怎么做。
在此先感谢。
明显的建议是尝试改变质量,看看是否有效果。 – 2012-04-17 11:55:29
只需注意一点:由于您位于使用(...)块内,因此您不需要'Gfx.Dispose();''Gfx'被放置在块的外面。 – Marco 2012-04-17 11:55:33
另外,你是否有你想要制作的示例图片,也许有更简单的你可以做的。 – 2012-04-17 11:56:39