Hej Lars
Jeg har en kodestump her der laver thumbnails på et Image, som du er
velkommen til at bruge
function filelist(dir, mask : string; att : integer) : tstringlist;
var ts : tsearchrec; i, dos : integer;
strl : tstringlist;
begin
strl := tstringlist.Create;
strl.Sorted := true;
chdir(dir);
dos := findfirst(mask,att, ts);
while dos = 0 do
begin
//if pos(, ts.Name) =0 then
strl.add(formatfloat('0000000000', ts.Time)+ts.Name);
dos := findnext(ts);
end;
findclose(ts);
result := tstringlist.Create;
for i := 0 to strl.count-1
do result.insert(0, copy(strl[i],11,50));
strl.Free;
chdir('..');
end;
procedure ShowImage(filename : string; px, py, maxdim : integer; image :
timage);
var jp : tjpegimage;
dim, h,w : integer;
ratio : real;
begin
jp := tjpegimage.Create;
jp.loadfromfile(filename);
dim := round(max(jp.height, jp.width));
ratio := maxdim/dim;
w := round(jp.width*ratio);
h:= round(jp.height*ratio);
with image, canvas do
begin
application.ProcessMessages;
stretchdraw(rect(px, py, px+w, py+h), jp);
update;
application.ProcessMessages;
end;
jp.Free;
end;
var strl : tstringlist;
procedure ShowImages(dir : string; dim : integer; image : timage);
var t, x,y, i, j, maxi,maxj : integer;
begin
strl := filelist(dir, '*.jpg', faArchive);
with image do
begin
picture.graphic := nil;
canvas.rectangle(1,1,width, height);
end;
maxi := image.Width div dim;
maxj := image.height div dim;
t := 0;
for j := 0 to maxj-1 do
for i := 0 to maxi-1 do
begin
x := i*(10+dim);
y := j*(10+dim);
if t < strl.count then
showimage(dir+'\'+strl[t], x,y, dim, image);
inc(t);
end;
end;
"Lars HT" <FJERNaslaktoke@yahoo.NREJFdk> skrev i en meddelelse
news:crj1d0$nco$1@news.net.uni-c.dk...
> Hej.
>
> Jeg er ved at lave en billedbrowser til at rename diverse billeder og
> leder
> derfor efter en komponent eller noget kode, som kan lave thumbnails af
> jpg,
> bmp, ico (og gerne flere) billeder. Hurtighed er et must.
>
> Jeg har desuden nogle avi og mov-filer. Hvordan får jeg vist første frame
> som en thumbnail?
>
> Lars
>
>
|