Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Seckanje pri skrolovanju velike slike

[es] :: .NET :: Seckanje pri skrolovanju velike slike

[ Pregleda: 3244 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Shadowed
Vojvodina

Član broj: 649
Poruke: 12850



+4784 Profil

icon Seckanje pri skrolovanju velike slike21.08.2004. u 01:03 - pre 239 meseci
Kako PictureBox nema scrollbar-ove na sebi koristio sam Panel na kome se nalazi PictureBox koji se, opet, povecava na velicinu slike. AutoScroll svojstvo Panel-a je True pa to fino radi.
Problem se javlja ako je ucitana slika veoma velika. Reda velicine 10 megapixela. Dolazi do seckanja.
Ima li neko ideju kako bih mogao "lepo" da prikazujem velike slike (do oko 100Mpix)?
Da ne pominjem cinjenicu koliko memorije zauzme program kada ucita toliku sliku.
 
Odgovor na temu

akrosoft
Dusan Mihajlovic
Beograd

Član broj: 31201
Poruke: 129
*.nat-pool.bgd.sbb.co.yu

Sajt: www.RoditeljPortal.com


Profil

icon Re: Seckanje pri skrolovanju velike slike21.08.2004. u 10:03 - pre 239 meseci
Probaj preko stilova da primenis double buffering forme ili kontrole gde ti se nalazi taj panel.
Code:
 
SetStyle(ControlStyles.UserPaint, true); 
SetStyle(ControlStyles.AllPaintingInWmPaint, true); 
SetStyle(ControlStyles.DoubleBuffer, true);  

 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12850



+4784 Profil

icon Re: Seckanje pri skrolovanju velike slike21.08.2004. u 19:28 - pre 239 meseci
SetStyle je Protected za PictureBox. Ako ga koristim za formu ne primecuje se nikakva razlika (ja nisam primetio). U svakom slucaju ostaje problem sa zauzecem memorije pa cu verovtno preci na neko dinamicko ucitavanje sa diska ili nesto slicno. Samo da smislim kako cu.
 
Odgovor na temu

akrosoft
Dusan Mihajlovic
Beograd

Član broj: 31201
Poruke: 129
*.nat-pool.bgd.sbb.co.yu

Sajt: www.RoditeljPortal.com


Profil

icon Re: Seckanje pri skrolovanju velike slike21.08.2004. u 22:04 - pre 239 meseci
Sto ne napravis neku metodu koja ce "on the fly" redukovati rezoluciju/velicinu? Nesto tipa:

Code:

private Bitmap Redukuj(Image imgOriginal, int width, int height, float horRes, float verRes)
{
Bitmap bmRedukovana = new Bitmap(width, height, PixelFormat.Format16bppRgb555); //ili izaberi neki drugi format
bmRedukovana.SetResolution(imgOriginal.horRes, imgPhoto.verRes);
return bmRedukovana;
}


...i onda ucitas tu sliku koju ti vrati metoda Redukuj. Ne znam tacno sta ti treba, kog kvaliteta, u principu mozes sa slikom da radis sta hoces.

Izmena:
...imao sam identican problem sa flickeringom prilikom scrolla slike, i double buffering mi je savrseno resio problem, mozda su jedino te tvoje slike prevelike pa se ne primecuje.
 
Odgovor na temu

akrosoft
Dusan Mihajlovic
Beograd

Član broj: 31201
Poruke: 129
*.nat-pool.bgd.sbb.co.yu

Sajt: www.RoditeljPortal.com


Profil

icon Re: Seckanje pri skrolovanju velike slike22.08.2004. u 00:20 - pre 239 meseci
Da....pade mi na pamet da uvek mozes da koristis "seljacki" nacin zamrzavanja i odmrzavanja windowa. U principu sam takve stvari koristio kada se ceka na vise objekata UIa da se prikazu, ali pogledaj, mozda ce ti odgovarati...znaci, koristi se pinvoke:
Code:

[DllImport("user32.dll")]
public static extern bool LockWindowUpdate(IntPtr hWndLock);
[DllImport("user32.dll")]
extern static IntPtr GetDesktopWindow();


poziva se funkcija:
Code:

LockWindowUpdate((IntPtr)GetDesktopWindow());
LockWindowUpdate((IntPtr)0);
Ili 
LockWindowUpdate((IntPtr)this.Handle);

Znaci hvatas scroll, zamrznes ekran, slika se ucita, odmrznes ekran.....Hm, pisuci ovo sam se setio da, koliko mi se cini, ne mozes da hvatas scroll dogadjaj panela sa automatic scroll barom setovanim za panel, moraces da dodas scroll bar kontrolu. Ne znam kolika ti je to onda maltretirancija......
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12850



+4784 Profil

icon Re: Seckanje pri skrolovanju velike slike22.08.2004. u 00:38 - pre 239 meseci
Poprilicna. Ali cu isto morati da uradim i za ono deljenje slike i dinamicko ucitavanje.
Sta god radio sa slikom moram se osloboditi problema sa RAM-om jer zauzima 200MB sa slikom od oko 7000x5000px.

Svakako hvala za ovo, zatrebace nekad za neki slican problem.
 
Odgovor na temu

[es] :: .NET :: Seckanje pri skrolovanju velike slike

[ Pregleda: 3244 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.