Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 6 odgovora
  • 2.884 pregleda

Najnovija ↓

Image viewer (Filmstrip) 22.01.2005. u 19:31 · pre 265 meseci #1
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).
Potpis
http://filsko.100webspace.net
Re: Image viewer (Filmstrip) 22.01.2005. u 22:55 · pre 265 meseci #2
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.
Potpis
Ride the rainbow, crack the sky

DIY gitare, pojacala i efekti www.diy-fever.com
Re: Image viewer (Filmstrip) 23.01.2005. u 00:10 · pre 265 meseci #3
Tradicionalno resenje za to je OwnerDraw, mada ni ovo bancikino uopste nije lose ;)
Re: Image viewer (Filmstrip) 23.01.2005. u 01:22 · pre 265 meseci #4
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 :)
Potpis
Ride the rainbow, crack the sky

DIY gitare, pojacala i efekti www.diy-fever.com
Re: Image viewer (Filmstrip) 23.01.2005. u 13:44 · pre 265 meseci #6
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;

Potpis
Ride the rainbow, crack the sky

DIY gitare, pojacala i efekti www.diy-fever.com
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme