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

Kako da izvucem sliku iz picture boxa u fajl?

[es] :: .NET :: Kako da izvucem sliku iz picture boxa u fajl?

Strane: 1 2

[ Pregleda: 6174 | Odgovora: 35 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Shadowed
Vojvodina

Član broj: 649
Poruke: 12851



+4784 Profil

icon Re: Kako da izvucem sliku iz picture boxa u fajl?06.04.2006. u 19:53 - pre 220 meseci
Uh. Pod pretpostavkom da su ti dimenzije Bitmap objekata odgovarajuce:
Code:

pbRadniProstor.Image=MyBitmap
Gprahics MyGraph = Graphics.FromImage(MyBitmap)


Sad taj MyGraph koristi za crtanje, a MyBitmap.Save() za snimanje fajla.

Ponavljam, nisam gledao detaljno kod za crtanje, ako je tacno ono sto kaze mmix (a ja mu verujem) dzaba ti.
 
Odgovor na temu

dusans
Stojanov Dušan
Pančevo

Član broj: 9551
Poruke: 1343
*.3dnet.co.yu.



+311 Profil

icon Re: Kako da izvucem sliku iz picture boxa u fajl?06.04.2006. u 20:00 - pre 220 meseci
Ako je tako onda ti lepo deklariši promenljivu za bitmap:
Code:

private Bitmap Bmp;


Zatim, u form load stavi ovaj kod:
Code:

this.Bmp=new Bitmap(this.pbRadniProstor.Width, this.pbRadniProstor.Height);


U paint eventu ovaj:
Code:

Graphics G = Graphics.FromImage(Bmp);
G.Clear(Color.Transparent);
// Dalje koristi za crtanje G umesto e.Graphics
// Npr. e.Graphics.DrawLine(SivaLinija, Brojac, 0, Brojac, pbRadniProstor.Height); 
// treba da bude G.DrawLine(SivaLinija, Brojac, 0, Brojac, pbRadniProstor.Height);

// Na kraju paint event-a ide ovaj kod da bi video u picture box-u ono što si upravo iscrtao
e.Graphics.DrawImageUnscaled(this.Bmp, 0, 0);


Kasnije snimanje je posle valjda jasno:
Code:

this.Bmp.Save(@"C:\Test.Bmp");


Pozdrav!

[Sad vidim da je Shadowed rekao istu stvar]

[Ovu poruku je menjao dusans dana 06.04.2006. u 21:02 GMT+1]
 
Odgovor na temu

Yu Raider
Ivan Djordjevic
Bg

Član broj: 40731
Poruke: 273
..njuel-bg.customer.sbb.co.yu.



+2 Profil

icon Re: Kako da izvucem sliku iz picture boxa u fajl?06.04.2006. u 20:06 - pre 220 meseci
Jeeeeeeeeeeeeee!!! Radi!!! Jeste da je program 90% sporiji iz nekog razloga ali barem radi . Hvala!!!!
SLIder.
 
Odgovor na temu

Yu Raider
Ivan Djordjevic
Bg

Član broj: 40731
Poruke: 273
..njuel-bg.customer.sbb.co.yu.



+2 Profil

icon Re: Kako da izvucem sliku iz picture boxa u fajl?06.04.2006. u 20:14 - pre 220 meseci
Hmmm cudno. Program je znatno sporiji iako usage procesora ne prelazi preko 50%. Ne bih sad da cepidlacim ali sto je veca slika tj njene dimenzije to radi sporije... jel to zbog

Code:

Graphics G = Graphics.FromImage(slika);


...?
SLIder.
 
Odgovor na temu

dusans
Stojanov Dušan
Pančevo

Član broj: 9551
Poruke: 1343
*.3dnet.co.yu.



+311 Profil

icon Re: Kako da izvucem sliku iz picture boxa u fajl?06.04.2006. u 20:19 - pre 220 meseci
Sporina dolazi iz ove linije ako je ti je PictureBox velik
Code:

e.Graphics.DrawImageUnscaled(this.Bmp, 0, 0);


Sad ako ne moraš da radiš iscrtavanje baš u Paint Event-u nego recimo na učitavanju forme ili na klik dugmeta onda možeš da dodaš u load event-u forme i liniju
Code:

pbRadniProstor.Image = Bmp;

A zatim tamo gde radiš iscrtavanje (ali nikako u PaintEventu) pozoveš sledeću liniju:
Code:

pbRadniProstor.Refresh();

Ovo će ti raditi dosta brže.

Pozdrav!
 
Odgovor na temu

Yu Raider
Ivan Djordjevic
Bg

Član broj: 40731
Poruke: 273
..njuel-bg.customer.sbb.co.yu.



+2 Profil

icon Re: Kako da izvucem sliku iz picture boxa u fajl?06.04.2006. u 20:21 - pre 220 meseci
Ne znam kako radi - ali nisam ni stavio tu liniju... I bez nje se iscrtava... A kada je stavim onda je jos sporije .
SLIder.
 
Odgovor na temu

Yu Raider
Ivan Djordjevic
Bg

Član broj: 40731
Poruke: 273
..njuel-bg.customer.sbb.co.yu.



+2 Profil

icon Re: Kako da izvucem sliku iz picture boxa u fajl?06.04.2006. u 20:23 - pre 220 meseci
Ah - naravno, pa ja sam u timeru od 50 ms radio refresh... Zato se i ispisuje ;).
Cek da probam tvoju varijantu.
SLIder.
 
Odgovor na temu

Yu Raider
Ivan Djordjevic
Bg

Član broj: 40731
Poruke: 273
..njuel-bg.customer.sbb.co.yu.



+2 Profil

icon Re: Kako da izvucem sliku iz picture boxa u fajl?06.04.2006. u 20:25 - pre 220 meseci
Tvoja varijanta : e.Graphics.DrawImageUnscaled(this.Bmp, 0, 0); mi uopste ne iscrtava na ekran :|. Oh well ako mora da bude sporo, sta da radim...
SLIder.
 
Odgovor na temu

negyxo
Aleksandar Perkuchin

Član broj: 29751
Poruke: 898
*.sksyu.net.



+171 Profil

icon Re: Kako da izvucem sliku iz picture boxa u fajl?07.04.2006. u 10:37 - pre 220 meseci
Citat:

Oh well ako mora da bude sporo, sta da radim...


Ne mora da ide sporo. mmix ti je vec sve odgovorio. Treba samo da prebacis iscrtavanje u memory HDC a ne od kontrole. To ces uraditi tako sto ces kreirati prvo "kompatibilan" HDC na osnovu postojeceg a zatim sva ta iscrtavanja raditi na njemu a ne od kontrole. Na kraju na paint event samo uradis jedan BitBlt iz memory HDC u kontrolin HDC. Ovo je sigurno brze, valda :)

Evo zakacio sam mali primer. Vodi racuna samo da je ovo VS2005 projekat.



[Ovu poruku je menjao negyxo dana 07.04.2006. u 11:48 GMT+1]
Prikačeni fajlovi
 
Odgovor na temu

Yu Raider
Ivan Djordjevic
Bg

Član broj: 40731
Poruke: 273
..njuel-bg.customer.sbb.co.yu.



+2 Profil

icon Re: Kako da izvucem sliku iz picture boxa u fajl?07.04.2006. u 12:01 - pre 220 meseci
Jupiiiiiiiiiiiiiiiiiiiiiiiiiiiii!!! :D

HVALA SVIMA MNOGO!
SLIder.
 
Odgovor na temu

Yu Raider
Ivan Djordjevic
Bg

Član broj: 40731
Poruke: 273
..njuel-bg.customer.sbb.co.yu.



+2 Profil

icon Re: Kako da izvucem sliku iz picture boxa u fajl?07.04.2006. u 13:24 - pre 220 meseci
Hm... Jeste nekih 20 % brze ali je i dalje veoma sporo... Verovatno je to zbog samog crtanja, koje je jako glomazno i desava svaki frame.
SLIder.
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: Kako da izvucem sliku iz picture boxa u fajl?07.04.2006. u 13:29 - pre 220 meseci
Citat:
Yu Raider: Hmmm cudno. Program je znatno sporiji iako usage procesora ne prelazi preko 50%.


Ako imas P4 HT (Hyper Threading) ili jaci multi-core procesor onda ti single-thread aplikacija nikad nece uzeti vise od 50% ukupnog CPU vremena.
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

Yu Raider
Ivan Djordjevic
Bg

Član broj: 40731
Poruke: 273
..njuel-bg.customer.sbb.co.yu.



+2 Profil

icon Re: Kako da izvucem sliku iz picture boxa u fajl?07.04.2006. u 13:31 - pre 220 meseci
I ne uzima, cpu ne ide preko 50%, ali je izvrsavanje mnogo sporo. Glupi .NET
SLIder.
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: Kako da izvucem sliku iz picture boxa u fajl?07.04.2006. u 13:38 - pre 220 meseci
Citat:
Yu Raider: Hm... Jeste nekih 20 % brze ali je i dalje veoma sporo... Verovatno je to zbog samog crtanja, koje je jako glomazno i desava svaki frame.


Jel ti to pravis neku GDI+ igricu? Ako pravis animaciju i hoces da bude glatka, onda je mozda pametnije da razmislis o 2D DirectX-u, narocito sto sad postoji .NET podrska. Taj DirectX.NET je spor stravicno kad su u pitanju prave 3D igirce, ali mislim da je vise nego brz za tvoje potrebe. GDI+ jednostavno nije predvidjen za takve stvari.






Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

Yu Raider
Ivan Djordjevic
Bg

Član broj: 40731
Poruke: 273
..njuel-bg.customer.sbb.co.yu.



+2 Profil

icon Re: Kako da izvucem sliku iz picture boxa u fajl?07.04.2006. u 13:43 - pre 220 meseci
Ne - nije igra. Nego Flowchart maker. ( http://en.wikipedia.org/wiki/Flowchart ) Radi zadovoljavajuce brzo kada ne iscrtavam mrezu,
koja treba da pokrije ceo radni prostor, ali kada treba mrezu da iscrtavam UZAS. Tad mi i strelica secka .

Inace kod koji koristim za crtanje mreze pri svakom Paint eventu je:

Code:

            for (Brojac = 0; Brojac < pbRadniProstor.Height; Brojac += VertikalnaRazdaljina)
            {
                grafika.DrawLine(SivaLinija, 0, Brojac, pbRadniProstor.Width, Brojac);
            }

            for (Brojac = 0; Brojac < pbRadniProstor.Width; Brojac += HorizontalnaRazdaljina)
            {
                grafika.DrawLine(SivaLinija, Brojac, 0, Brojac, pbRadniProstor.Height);
            }

SLIder.
 
Odgovor na temu

negyxo
Aleksandar Perkuchin

Član broj: 29751
Poruke: 898
*.sksyu.net.



+171 Profil

icon Re: Kako da izvucem sliku iz picture boxa u fajl?07.04.2006. u 16:19 - pre 220 meseci
Pa jer bas moras na paint event da iscrtavas sve linije? Ako ti je ta mreza staticna zasto je onda ne nacrtas u memoriji pa je posle stalno samo kopiras. Na taj nacin ces i izbeci bespotrebno ponavljanje koje ti inace i usporava.
Ako si skinuo onaj primer probaj da zamenis DrawSomething f-ju sa ovim

Code:

int xDis = 5;
            int yDis = 5;
            
            Random rnd = new Random();
            Color c = Color.FromArgb(rnd.Next(255), rnd.Next(255), rnd.Next(255));

            Graphics g = Graphics.FromHdc(memHdc);
            g.Clear(Color.White);
            
            Pen p = new Pen(c);

            for (int i = 0; i < 10; i++)
            {
                for (int x = 0; x < pictureBox1.Width; x += xDis)
                {
                    g.DrawLine(p, x, 0, x, pictureBox1.Height);
                }

                for (int y = 0; y < pictureBox1.Height; y += yDis)
                {
                    g.DrawLine(p, 0, y, pictureBox1.Width, y);
                }
            }


Ovako ce ti se DrawSomething iscrtati grid samo jednom u memoriji i posle toga na paint eventu ostaje samo da se kopira taj sadrzaj u pictureBox. Ovako imas samo jedan BitBlt naspram n poziva DrawLine.
 
Odgovor na temu

[es] :: .NET :: Kako da izvucem sliku iz picture boxa u fajl?

Strane: 1 2

[ Pregleda: 6174 | Odgovora: 35 ] > FB > Twit

Postavi temu Odgovori

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