私は画像のサイズ変更、drawStringとFillEllipse
を行っています。
n
ビットマップを表示する必要がある多くのポイント(FillEllipse)があるので、私は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には多くの点がある場合は、非常に長い時間がかかる:
はここのコードです。 パフォーマンスが大幅に低下し、読み込みに多大なメモリが必要でした。 どうすればいいか教えてください。
ありがとうございます。
明白な示唆は、効果があるかどうかを確認するために品質を変えてみることです。 –
ちょっとした注意: 'using(...)'ブロックの中にいるので、 'Gfx.Dispose();'は必要ありません。 'Gfx'はブロックを抜けるように配置されています。 – Marco
また、作成しようとしている画像の例がありますか、もっと簡単なことがあります。 –