Freigeben über


Verbessern der Leistung durch Vermeidung der automatischen Skalierung

Wenn Sie nur die obere linke Ecke eines Bilds an die DrawImage-Methode übergeben, kann Windows GDI+ das Image skalieren, was die Leistung beeinträchtigen würde.

Der folgende Aufruf der DrawImage-Methode gibt eine linke obere Ecke von (50, 30) an, gibt jedoch kein Zielrechteck an:

graphics.DrawImage(&image, 50, 30);  // upper-left corner at (50, 30)

Obwohl dies die einfachste Version der DrawImage-Methode in Bezug auf die Anzahl der erforderlichen Argumente ist, ist sie nicht unbedingt die effizienteste. Wenn sich die Anzahl der Punkte pro Zoll auf dem aktuellen Anzeigegerät von der Anzahl der Punkte pro Zoll auf dem Gerät unterscheidet, auf dem das Bild erstellt wurde, skaliert GDI+ das Bild so, dass seine physische Größe auf dem aktuellen Anzeigegerät so nah wie möglich an seiner physischen Größe auf dem Gerät ist, auf dem es erstellt wurde.

Wenn Sie eine solche Skalierung verhindern möchten, übergeben Sie die Breite und Höhe eines Zielrechtecks an die DrawImage-Methode . Im folgenden Beispiel wird dasselbe Bild zweimal gezeichnet. Im ersten Fall werden die Breite und Höhe des Zielrechtecks nicht angegeben, und das Bild wird automatisch skaliert. Im zweiten Fall werden die Breite und Höhe (gemessen in Pixel) des Zielrechtecks als die Breite und Höhe des ursprünglichen Bilds angegeben.

Image image(L"Texture.jpg");
graphics.DrawImage(&image, 10, 10);
graphics.DrawImage(&image, 120, 10, image.GetWidth(), image.GetHeight());

In der folgenden Abbildung wird das Bild zweimal gerendert.

Screenshot eines Fensters, das zwei Versionen eines Bilds in unterschiedlichem Maßstab enthält