Zvětšení bitmapy   otázka

VB.NET, WinForms, Grafika

Dobrý den,

mám aplikaci, ve které mám picturebox a do něj uživatel může něco vykreslit. V konstruktoru formu si tedy vytvořím instanci třídy Bitmap a té předám velikost daného pictureboxu.

dále pak v příslušné události mouse move nad pictureboxem vytvořím objekt Graphocs příslušné bitmapy a kreslím..... poté v Picturebox_Paint vykresluji příslušnou bitmapu. Vše funguje, jak má. Nyní jsem dodělal funkcionalitu, že v případě zvětšení formu (resize) dojde i ke zvětšení pictureboxu. Ale jak zvětšit příslučný objekt Bitmap, aby se dalo kreslit nad celým zvětšeným pictureboxem?

Děkuji

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Bez toho aniž by se po každé změně velikosti vytvořila nová instance Bitmap, Graphics a zkopíroval se předchozí obsah (extrémě pomalé) to nejde. Proto se to také tak nedělá. Jakýkoliv grafický editor má také napevno nastavené kreslící plátno které se nemění.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Takže jestli tomu dobře rozumím, tak jediná cesta jak kreslit do bitmapy nad zvětšeným pictureboxem je:

Globální proměnné formu:

Bitmap mojeBitmapa;

V konstruktoru formu:

mojeBitmapa = new Bitmap(picBox.Width, picBox.Height);

V události ResizeEnd formuláře:

mojeBitmapa.Dispose();
mojeBitmapa = new Bitmap(picBox.Width, picBox.Height);

a pokud chci, tak mezi to ještě narvat překreslení staré do nové.

???

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ano, ale je to pomalé a zbytečné.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

no oni mi ti uživatele to zvětšení formu nebudou dělat pořád, udělají to jednou, aby si to přizpůsobili svým potřebám a je to...

Funkcionalita resize u formu je důležitá kvůli rozdílným požadavkům na velikost aplikace, vykreslování do bitmapy je také důležité - tedy nemám jinou možnost.

Děkuji.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback