ok, war wirklich einwenig kompliziert... ich habs nunmal vereinfacht und mich auf Bitmaps beschränkt. Nun sieht das ganze so aus:
Delphi-Quellcode:
img1:=TBitmap.Create;
img1.LoadFromFile(e.pfad+'\'+e.name);
if (img1.Height/img1.Width)>=(dheight/dwidth) then begin
nheight:=dheight;
nwidth :=round(nheight*img1.width/img1.height);
end
else begin
nwidth:=dwidth;
nheight :=round(img1.Height/img1.Width*nwidth);
end;
img2:=TBitmap.Create;
img2.Width:=nwidth;
img2.Height:=nheight;
StretchBlt(img2.Canvas.Handle,0,0,nwidth,nheight,
img1.Canvas.Handle,0,0,img1.Width,img1.Height,SRCCOPY);
img2.SaveToFile(e.pfad+'\_'+e.name);
img1.Free;
img2.Free;
Nur leider funktioniert es immernoch nicht richtig. Ich dachte vielleicht gets mit der StretchBlt funktion. Das Ergebnis ist aber genau das gleiche wie beim Draw der gr32.
Bei SW-Bildern ist das Problem ebenfalls vorhanden...
Einer BitMap-Variabel lässt sich kein StretchFilter zuweisen und bei der BitMap32 hats nichts gebracht...
Sonst noch jemand eine Idee?