Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
GDI+ může automaticky škálovat obrázek při kreslení, což by snížil výkon. Alternativně můžete řídit škálování obrázku předáním dimenzí cílového obdélníku metodě DrawImage .
Například následující volání DrawImage metody určuje levý horní roh (50, 30), ale nezadá cílový obdélník.
e.Graphics.DrawImage(image, 50, 30); // upper-left corner at (50, 30)
e.Graphics.DrawImage(image, 50, 30) ' upper-left corner at (50, 30)
I když se jedná o nejjednodušší verzi DrawImage metody z hlediska počtu požadovaných argumentů, není nutně nejúčinnější. Pokud se rozlišení používané rozhraním GDI+ (obvykle 96 tečkami na palec) liší od rozlišení uloženého v objektu Image , DrawImage pak metoda škáluje obrázek. Předpokládejme například, že Image objekt má šířku 216 pixelů a uloženou hodnotu vodorovného rozlišení 72 bodů na paleč. Vzhledem k tomu, že 216/72 je 3, zvětší velikost obrázku tak, DrawImage aby byl šířka 3 palce v rozlišení 96 tečk na palec. To znamená, DrawImage že zobrazí obrázek, který má šířku 96 × 3 = 288 pixelů.
I když se rozlišení obrazovky liší od 96 teček na palec, GDI+ pravděpodobně škáluje obrázek tak, jako kdyby rozlišení obrazovky bylo 96 teček na palec. Důvodem je to, že objekt GDI+ Graphics je přidružený k kontextu zařízení a když GDI+ dotazuje kontext zařízení na rozlišení obrazovky, výsledek je obvykle 96 bez ohledu na skutečné rozlišení obrazovky. Automatickému škálování se můžete vyhnout zadáním cílového obdélníku DrawImage v metodě.
Příklad
Následující příklad nakreslí stejný obrázek dvakrát. V prvním případě není zadána šířka a výška cílového obdélníku a obrázek se automaticky škáluje. V druhém případě je šířka a výška (měřená v pixelech) cílového obdélníku určena tak, aby byla stejná jako šířka a výška původního obrázku. Následující obrázek znázorňuje obrázek vykreslovaný dvakrát:
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)
Probíhá kompilace kódu
Předchozí příklad je určen pro použití s model Windows Forms a vyžaduje PaintEventArgse
, což je parametr Paint obslužné rutiny události. Nahraďte Texture.jpg názvem a cestou image, která jsou v systému platná.
Viz také
.NET Desktop feedback