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

Image viewer (Filmstrip)

[es] :: Pascal / Delphi / Kylix :: Image viewer (Filmstrip)

[ Pregleda: 2205 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

freespace
Filip Skorup
Donji Miholjac

Član broj: 31925
Poruke: 72
*.cmu.carnet.hr.

Sajt: filsko.100webspace.net


Profil

icon Image viewer (Filmstrip)22.01.2005. u 18:31 - pre 234 meseci
Da li netko zna neku komponentu ili neki drugi nacin da se prikažu sličice u filelistbox-u tako da taj filelistbox izgleda kao neki image preview. Znaci ne da prikazuje ikone od neke slike nego da prikaze tu sliku.(npr. kao kada u nekom win folderu namjestite view->Filmstrip).
 
Odgovor na temu

bancika
Branislav Stojkovic

Član broj: 24844
Poruke: 631
*.vdial.verat.net.

Sajt: www.diy-fever.com


+1 Profil

icon Re: Image viewer (Filmstrip)22.01.2005. u 21:55 - pre 234 meseci
evo ti generalne ideje:
ucitas slicicu u TBitmap (ili TJpegImage, zavisi) onda je a DrawStretched smanjenu iscrtas na drugu TBitmap-u koja je velicine ikonice koju bi ti koristio u listboxu...onda je dodas u ImageList postavis ImageIndex za taj fajl...
ako hoces "fancy" stretch pogledaj malo na google, imas dosta algoritama kako da interpoliras sliku i tako je mnogo lepse kad se smanji.
Ride the rainbow, crack the sky

DIY gitare, pojacala i efekti www.diy-fever.com
 
Odgovor na temu

_v!rus_
BGD

Član broj: 40451
Poruke: 313
213.244.197.*



+1 Profil

icon Re: Image viewer (Filmstrip)22.01.2005. u 23:10 - pre 234 meseci
Tradicionalno resenje za to je OwnerDraw, mada ni ovo bancikino uopste nije lose
 
Odgovor na temu

bancika
Branislav Stojkovic

Član broj: 24844
Poruke: 631
213.244.208.*

Sajt: www.diy-fever.com


+1 Profil

icon Re: Image viewer (Filmstrip)23.01.2005. u 00:22 - pre 234 meseci
pa da, u principu je svejedno da li ce da ih ubaci u listu ili iscrta..ono sto u svakom slucaju mora da uradi su thumbnailovi
Ride the rainbow, crack the sky

DIY gitare, pojacala i efekti www.diy-fever.com
 
Odgovor na temu

freespace
Filip Skorup
Donji Miholjac

Član broj: 31925
Poruke: 72
*.cmu.carnet.hr.

Sajt: filsko.100webspace.net


Profil

icon Re: Image viewer (Filmstrip)23.01.2005. u 09:51 - pre 234 meseci
Ustvari meni treba nekakav FILELISTBOX koji će imati thumbnail opciju da prikazuje fajlove.
 
Odgovor na temu

bancika
Branislav Stojkovic

Član broj: 24844
Poruke: 631
213.244.208.*

Sajt: www.diy-fever.com


+1 Profil

icon Re: Image viewer (Filmstrip)23.01.2005. u 12:44 - pre 234 meseci
cekaj..pretpostavljam da hoces da izvedes to sa ListBox-om (ili mozda sa ListView-om).
Ako je prvo onda moras sa OwnerDraw, evo uputstva pa se snadji dalje:
Stavi ListBox na formu i podesi mu ItemHeight na visinu thumbnaila
u OnDrawItem stavi:

Code:

 with (Control As TListBox) do
  begin
    Canvas.FillRect(Rect);
    VS.Draw(Canvas, Rect.Left, Rect.Top, Index, True);
  end;


evo procedure za dodavanje thumbnaila u TImageList (koji se zove VS); To sam ja nesto radi programce za uporedjivanje JPG slicica i onda napravi thumbnail koji ima na sebi prvu slicicu levo pa izmedju njih text 'VS' i onda desno ide druga slicica...lako ces da prepravis da samo jednu crta. pisao sam i komentare, tako da ces se snaci

Code:

procedure TMainForm.AddImages(File1, File2: string);
var First, Second: TJpegImage;
    Image: TBitmap;
    X, Y: Integer;
    InStream: TFileStream;
    OutStream: TStream;
begin
  Image := TBitmap.Create;
  Image.Width := 220;
  Image.Height := 80;
  First := TJpegImage.Create;
  First.LoadFromFile(File1);
  Scale(First, X, Y);
  //create thumbnail for first image
  InStream:=TFileStream.Create(File1, fmOpenRead);
  try
    OutStream:=TMemoryStream.Create;
    try
      OutStream.Position := 0;
      CreateThumbnail(InStream, OutStream, X, Y);
      OutStream.Position := 0;
      First.LoadFromStream(OutStream);
    finally
      OutStream.Free;
    end;
  finally
    InStream.Free;
  end;

  Second := TJpegImage.Create;
  Second.LoadFromFile(File2);
  Scale(Second, X, Y);

  //create thumbnail for second image
  InStream:=TFileStream.Create(File2, fmOpenRead);
  try
    OutStream:=TMemoryStream.Create;
    try
      OutStream.Position := 0;
      CreateThumbnail(InStream, OutStream, X, Y);
      OutStream.Position := 0;
      Second.LoadFromStream(OutStream);
    finally
      OutStream.Free;
    end;
  finally
    InStream.Free;
  end;

  //draw first
  Image.Canvas.Draw(2, 0, First);
  Image.Canvas.TextOut(2, 64, ExtractFileName(File1));
  //draw second
  Image.Canvas.Draw(Image.Width - Second.Width + 2, 0, Second);
  Image.Canvas.TextOut(Image.Width - Second.Width + 2, 64, ExtractFileName(File2));
  //draw VS
  Image.Canvas.Font.Size := 8;
  Image.Canvas.Font.Style := [fsBold];
  Image.Canvas.TextOut((Image.Width - Image.Canvas.TextWidth('VS')) div 2, 30, 'VS');

  {First.SaveToFile('c:\test1.jpg');
  Second.SaveToFile('c:\test2.jpg');
  Image.SaveToFile('c:\test.jpg');}
  //add to list
  VS.Add(Image, nil);

  //free memory
  Second.Free;
  First.Free;
  Image.Free;
end;


Ride the rainbow, crack the sky

DIY gitare, pojacala i efekti www.diy-fever.com
 
Odgovor na temu

freespace
Filip Skorup
Donji Miholjac

Član broj: 31925
Poruke: 72
*.cmu.carnet.hr.

Sajt: filsko.100webspace.net


Profil

icon Re: Image viewer (Filmstrip)30.01.2005. u 09:19 - pre 234 meseci
Hvala na pomoci uspio sam
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Image viewer (Filmstrip)

[ Pregleda: 2205 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

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