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

Prebacivanje bitmape u niz

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

[ Pregleda: 490 | Odgovora: 9 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

milnen
Nenad Milosevic
Nis

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



Profil

icon Prebacivanje bitmape u niz22.09.2007. u 07:31

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.
22.09.2007. u 07:31 

[KS]
Damir Kasipovic
Banjaluka

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



Profil

icon Re: Prebacivanje bitmape u niz22.09.2007. u 10:29
Image1.Canvas.Pixels ti je niz sam po sebi...
Damir Kasipović
dkasipovic@gmail.com
+387 (0)65 979 949
22.09.2007. u 10:29 

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 983
*.adsl-1.sezampro.yu.



Profil

icon Re: Prebacivanje bitmape u niz22.09.2007. u 10:56

> 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.
22.09.2007. u 10:56 

milnen
Nenad Milosevic
Nis

Član broj: 73950
Poruke: 164
77.46.249.*



Profil

icon Re: Prebacivanje bitmape u niz22.09.2007. u 14:12
@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.
22.09.2007. u 14:12 

Milan Milosevic

Član broj: 67
Poruke: 419
91.150.121.*



Profil

icon Re: Prebacivanje bitmape u niz22.09.2007. u 17:28
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.
22.09.2007. u 17:28 

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 983
*.adsl-1.sezampro.yu.



Profil

icon Re: Prebacivanje bitmape u niz22.09.2007. u 17:44
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.
22.09.2007. u 17:44 

milnen
Nenad Milosevic
Nis

Član broj: 73950
Poruke: 164
91.150.121.*



Profil

icon Re: Prebacivanje bitmape u niz22.09.2007. u 18:01
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.
22.09.2007. u 18:01 

dogriz
Sombor

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



Profil

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

Jovan Prokopović
Niš

Član broj: 43689
Poruke: 30
212.62.40.*



Profil

icon Re: Prebacivanje bitmape u niz22.09.2007. u 20:39
Pogledaj u Delphi helpu ScanLine, možda ti pomogne.
22.09.2007. u 20:39 

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 983
*.adsl-1.sezampro.yu.



Profil

icon Re: Prebacivanje bitmape u niz22.09.2007. u 21:49
> 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 :)
22.09.2007. u 21:49 

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

[ Pregleda: 490 | Odgovora: 9 ]

Postavi temu Odgovori

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