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

Pomoc oko slike... HITNO

[es] :: Pascal / Delphi / Kylix :: Pomoc oko slike... HITNO

[ Pregleda: 2741 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

cassey
Andreja Ilic
Nis

Član broj: 57788
Poruke: 188
212.200.10.*



+1 Profil

icon Pomoc oko slike... HITNO19.04.2006. u 16:22 - pre 219 meseci
Evo macujem se ceo da i nikako da provalim. Dakle, imam sliku (.gif .jpg sve jedno) rezolucije n x m. Zelim da procitam svaki pixel sa nje i od toga napravim matricu gde ce polje a [i,j] = x, tako da je pixel sa kordinatama i,j boje x.
A drugo pitanje kako to da napravim obrnuto (od matrice da napravim sliku)?


Math is like love. A simple idea but it can get complicated.
 
Odgovor na temu

Srki_82
Srdjan Tot
Me @ My Home
Ljubljana

Član broj: 28226
Poruke: 1403
82.208.201.*

ICQ: 246436949


+10 Profil

icon Re: Pomoc oko slike... HITNO19.04.2006. u 17:59 - pre 219 meseci
Da li si pogledao Pixels property TBitmap klase? Mislim da bi ti oni sasvim lepo posluzili svrsi jer rade bas to sto ti treba.
 
Odgovor na temu

cassey
Andreja Ilic
Nis

Član broj: 57788
Poruke: 188
212.200.10.*



+1 Profil

icon Re: Pomoc oko slike... HITNO19.04.2006. u 19:14 - pre 219 meseci
Da sve je to lepo ali ja nista ne znam o tome. Aj ako mozes pogledaj to potrebno mi je hotno. Sutra putujem u Madjarsku na neko takm pa su neki zadaci ovog tipa (kada ja to ocuitam onda ide ono sto ja znam ali mi je ovo problem)...
Math is like love. A simple idea but it can get complicated.
 
Odgovor na temu

ntojzan
Sandor II Tojzan
Becej

Član broj: 36657
Poruke: 168
*.bbtec.net.



Profil

icon Re: Pomoc oko slike... HITNO20.04.2006. u 19:14 - pre 219 meseci
Pa zapravo Pixels radi dosta sporo.

Ono sto bih ja preporucio jeste nesto ovako:

Code:

type
  TPixelArray = Array of Array of Integer;

procedure ImageToPixelArray(Image: TImage; PixelArray: TPixelArray);
var
  Bitmap: TBitmap;
  ScanLine: PIntegerArray;
  X, Y: Integer;
begin
  Bitmap := TBitmap.Create;
  Bitmap.Assign(Image.Picture.Graphic);
  Bitmap.PixelFormat := pf32bit;
  SetLength(PixelArray, 0);
  SetLength(PixelArray, Bitmap.Height, Bitmap.Width);
  for Y := 0 to Bitmap.Height - 1 do
  begin
    ScanLine := Bitmap.ScanLine[Y];
    for X := 0 to Bitmap.Width - 1 do
      PixelArray[Y, X] := ScanLine[X];
  end;
  Bitmap.Free;
end;

procedure PixelArrayToImage(Image: TImage; PixelArray: TPixelArray);
var
  Bitmap: TBitmap;
  ScanLine: PIntegerArray;
  X, Y: Integer;
begin
  Bitmap := TBitmap.Create;
  Bitmap.PixelFormat := pf32bit;
  Bitmap.Height := Length(PixelArray);
  Bitmap.Width := Length(PixelArray[0]);
  for Y := 0 to Bitmap.Height - 1 do
  begin
    ScanLine := Bitmap.ScanLine[Y];
    for X := 0 to Bitmap.Width - 1 do
      ScanLine[X] := PixelArray[Y, X];
  end;
  Image.Picture.Assign(Bitmap);
  Bitmap.Free;
end;


[Ovu poruku je menjao ntojzan dana 20.04.2006. u 20:17 GMT+1]
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Pomoc oko slike... HITNO

[ Pregleda: 2741 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

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