크기 조절, 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'가 블록을 빠져 나오기 때문에'Gfx.Dispose();'는 필요 없습니다. – Marco
또한 제작하려는 예제 이미지가 있습니까? 더 간단한 작업이있을 수 있습니다. –