Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
GDI+ kan automatiskt skala en bild när du ritar den, vilket skulle minska prestandan. Du kan också styra skalningen av bilden genom att skicka dimensionerna för målrektangeln till metoden DrawImage.
Följande anrop till metoden DrawImage anger till exempel ett övre vänstra hörn på (50, 30) men anger ingen målrektangel.
e.Graphics.DrawImage(image, 50, 30); // upper-left corner at (50, 30)
e.Graphics.DrawImage(image, 50, 30) ' upper-left corner at (50, 30)
Även om det här är den enklaste versionen av DrawImage-metoden när det gäller antalet argument som krävs, är det inte nödvändigtvis den mest effektiva. Om den upplösning som används av GDI+ (vanligtvis 96 punkter per tum) skiljer sig från den upplösning som lagras i objektet Image skalas bilden av metoden DrawImage. Anta till exempel att ett Image objekt har en bredd på 216 bildpunkter och ett lagrat vågrätt upplösningsvärde på 72 punkter per tum. Eftersom 216/72 är 3 skalar DrawImage bilden så att den har en bredd på 3 tum med en upplösning på 96 punkter per tum. Det vill säga, DrawImage kommer visa en bild som har en bredd på 96 x 3 = 288 pixlar.
Även om skärmupplösningen skiljer sig från 96 punkter per tum skalar GDI+ förmodligen bilden som om skärmupplösningen var 96 punkter per tum. Det beror på att ett GDI+ Graphics-objekt är associerat med en enhetskontext, och när GDI+ frågar enhetskontexten för skärmupplösningen blir resultatet vanligtvis 96, oavsett den faktiska skärmupplösningen. Du kan undvika automatisk skalning genom att ange målrektangeln i metoden DrawImage.
Exempel
I följande exempel ritas samma bild två gånger. I det första fallet anges inte målrektangelns bredd och höjd och bilden skalas automatiskt. I det andra fallet anges bredden och höjden (mätt i bildpunkter) för målrektangeln vara samma som den ursprungliga bildens bredd och höjd. Följande bild visar bilden som återges två gånger:
Image image = new Bitmap("Texture.jpg");
e.Graphics.DrawImage(image, 10, 10);
e.Graphics.DrawImage(image, 120, 10, image.Width, image.Height);
Dim image As New Bitmap("Texture.jpg")
e.Graphics.DrawImage(image, 10, 10)
e.Graphics.DrawImage(image, 120, 10, image.Width, image.Height)
Kompilera koden
Föregående exempel är utformat för användning med Windows Forms och kräver PaintEventArgse, som är en parameter för Paint händelsehanterare. Ersätt Texture.jpg med ett avbildningsnamn och en sökväg som är giltig i systemet.
Se även
.NET Desktop feedback