Laden...

Austausch von Grafik / zu hohe Przessorlast

Erstellt von Toem99 vor 15 Jahren Letzter Beitrag vor 15 Jahren 849 Views
T
Toem99 Themenstarter:in
511 Beiträge seit 2008
vor 15 Jahren
Austausch von Grafik / zu hohe Przessorlast

Guten Morgen!

Auch nach dem total verhagelten Spiel der Nationalmanschaft hoffe ich, eine befriedigende Antwort auf meine Frage zu erhalten.

Ich habe verschiedene PNG Dateien, die ich in einem Form als Hintergrundgrafik setze. Diese Dateien lade ich bei Programmstart in einen Cache und hole mir bei Bedarf die Datei via getScaledFromCache(Img, size). Danach wird eine Grafik gezeichnet und die beiden Images mit folgendem Code zusammengesetzt:


schnipp ....
Image img = ImageScaleCache.getScaledFromCache(backImage, ClientSize);
                if (img != null)
                {
                    using (Graphics g = Graphics.FromImage(fxImage))
                    {
                        g.DrawImage(img, 0, 0);
                    }
                }
schnapp ....


protected override void OnPaint(PaintEventArgs e)
        {
            Image imgRate = blabla
            Image imgChart = null;

            if (imgRate == null)
            {
                base.OnPaint(e);
            }
            else
            {
                using (Graphics gr = Graphics.FromImage(imgRate))
                {
                    switch (ArtofChart)
                    {
                        case "Chart":
                            imgChart = getDetailChart(imgRate.Width, imgRate.Height, offset, zoom, imgChart);
                            break;
                        case "Line":
                            imgChart = getTeaserLineChart(imgRate.Width, imgRate.Height, imgChart);
                            break;
                    }
                    if (imgChart != null)
                        gr.DrawImage(imgChart, 0, 0);
                }
            }
            e.Graphics.DrawImageUnscaled(imgRate, 0, 0);
        }

Wenn nun die Hintergrundgrafik ausgetauscht wird, geht kurzzeitig die Prozessorlast auf 100%.
Hat jemand eine Idee, wie ich die Prozessorlast minimieren kann?

Thx Folks

Nicht für das Leben, für die Arbeit lernen wir ...
Windows ist Klasse, ich nehme es um Linux zu downloaden ....

T
Toem99 Themenstarter:in
511 Beiträge seit 2008
vor 15 Jahren

Mir würde schon helfen, wenn ich irgendwie OnPaint unterdrücken könnte.

?(

Nicht für das Leben, für die Arbeit lernen wir ...
Windows ist Klasse, ich nehme es um Linux zu downloaden ....

P
48 Beiträge seit 2008
vor 15 Jahren

Hi Thomas Wüst,

die Hintergrundgrafik nicht über OnPaint und DrawImage zeichnen, sondern
einfach als BackgroundImage der Form setzen.

Grüße,

psy