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

Prebacivanje bitmape u niz

[es] :: Pascal / Delphi / Kylix :: Prebacivanje bitmape u niz

[ Pregleda: 2653 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

milnen
Nis

Član broj: 73950
Poruke: 332
*.elfak.ni.ac.yu.



+5 Profil

icon Prebacivanje bitmape u niz22.09.2007. u 07:31 - pre 202 meseci
Koji je najbrzi nacin za prebacivanje vrednosti pixela iz jedne vrste neke slike u niz?
Probao sam
Code:
procedure TForm1.Button1Click(Sender: TObject);
Var i,Row : Integer;
    a : Array of Integer;
begin
   Row:=0;
   SetLength(a,Image1.Width);
   For i:=0 To Image1.Width-1 do a[i]:=Image1.Canvas.Pixels[i,Row];
end;

ali je prilicno sporo.
 
Odgovor na temu

[KS]
Damir Kasipovic
Banjaluka

Član broj: 55395
Poruke: 46
*.teol.net.



Profil

icon Re: Prebacivanje bitmape u niz22.09.2007. u 10:29 - pre 202 meseci
Image1.Canvas.Pixels ti je niz sam po sebi...
Damir Kasipović
[email protected]
+387 (0)65 979 949
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Prebacivanje bitmape u niz22.09.2007. u 10:56 - pre 202 meseci

> Koji je najbrzi nacin za prebacivanje vrednosti pixela iz jedne vrste neke slike u niz?

Kako ti trebaju pikseli koji nisu u kontinualnom nizu, moraš uzimati jedan po jedan. Pixels tj. GetPixel nije brzo rešenje jer koristi WinApi funkciju. Najbolje što možeš uraditi je da dođeš do direktne bmp memorije i da uzimaš piksele. Za direktan pristup memoriji možeš koristiti TJclBitmap32 a možda može i TGraphic32.
 
Odgovor na temu

milnen
Nis

Član broj: 73950
Poruke: 332
77.46.249.*



+5 Profil

icon Re: Prebacivanje bitmape u niz22.09.2007. u 14:12 - pre 202 meseci
@savkic
Probacu nesto sa tvojim predlogom.

Ajde da kazem sta sve radim, mozda moze nesto bolje da se uradi. Radim nesto sa velikim bitmapama (recimo 20000x25000), koje se u delovima nalaze na hard disku. To su skenirane geografske karte na kojima nesto crtam i na kraju od svega treba da napravim jednu bitmapu na hard disku. Posto su velike, ne mogu da stanu u jednu bitmapu u memoriji, nego svaki deo nezavisno obradjujem i na na kraju sve to snimim u jedan bmp fajl. Kreiram header, a zatim na odgovarajuca mesta upisujem delove ovih bitmapa iz memorije. E sad, da bi ih upisao, treba da konverujem BGR pixele iz memorije u ARGB format i da snimim na hard disk. To radim tako sto pixele ubacim u niz, uz konverziju BGR->ARGB, pa sa BlockWrite snimim u fajl. Koliko sam mogao da primetim, u celoj operaciji snimanja na hard disk, najsporije je prebacivanje pixela u niz, jer se ne dobije znacajno ubrzanje ako povecam dimenziju niza koji upisujem.
 
Odgovor na temu

Milan Milosevic

Član broj: 67
Poruke: 932
91.150.121.*



+31 Profil

icon Re: Prebacivanje bitmape u niz22.09.2007. u 17:28 - pre 202 meseci
Tu imas dosta dobrih resenja na internetu. Samo potrazi i nacices znacajna ubrzanja. Ja sam nesto skinuo sa
www.About.com
Radeno je u assembleru i algoritam je veoma brz.
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Prebacivanje bitmape u niz22.09.2007. u 17:44 - pre 202 meseci
Možda da uopšte i ne koristiš komponentu već direktno sa fajlom, učitaš preko memory mapped file i menjaš, brže od toga ne može.
 
Odgovor na temu

milnen
Nis

Član broj: 73950
Poruke: 332
91.150.121.*



+5 Profil

icon Re: Prebacivanje bitmape u niz22.09.2007. u 18:01 - pre 202 meseci
Citat:
Milan Milosevic: Tu imas dosta dobrih resenja na internetu. Samo potrazi i nacices znacajna ubrzanja. Ja sam nesto skinuo sa
www.About.com
Radeno je u assembleru i algoritam je veoma brz.

Gledao sam ovo, ali nisam nasao nesto slicno mom problemu.

Citat:
savkic: Možda da uopšte i ne koristiš komponentu već direktno sa fajlom, učitaš preko memory mapped file i menjaš, brže od toga ne može.

Ali to bi znacilo da menjam fajlove originalne karte? Onda bih morao stalno da pravim kopiju, pa da radim sa njom.
 
Odgovor na temu

dogriz
Sombor

Član broj: 29744
Poruke: 259
*.dynamic.sbb.co.yu.

Sajt: dogriz.blogspot.com


+6 Profil

icon Re: Prebacivanje bitmape u niz22.09.2007. u 20:30 - pre 202 meseci
Ja sam svojevremeno pronašao dosta korisnih stvari oko grafike na http://www.efg2.com/Lab/Library/Delphi/index.html
 
Odgovor na temu

Jovan Prokopović
Jovan Prokopović
Niš

Član broj: 43689
Poruke: 31
212.62.40.*



Profil

icon Re: Prebacivanje bitmape u niz22.09.2007. u 20:39 - pre 202 meseci
Pogledaj u Delphi helpu ScanLine, možda ti pomogne.
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Prebacivanje bitmape u niz22.09.2007. u 21:49 - pre 202 meseci
> Ali to bi znacilo da menjam fajlove originalne karte? Onda bih morao stalno da pravim kopiju, pa da radim sa njom.

Kažeš da ih menjaš pa snimaš? Ti ih prvo snimi pa menjaj :)
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Prebacivanje bitmape u niz

[ Pregleda: 2653 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

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