Delphi-Quellcode:
procedure BildgroesseAendernJPGExt(Quelle,Ziel:TFileName; MaxBreite,MaxHoehe:integer);
var
bmp : TBitmap;
jpeg : TJpegImage;
breite, hohe : integer;
begin
Jpeg:=TJpegImage.Create;
try // <--- wir tryen mal schon ab hier
jpeg.LoadFromFile( Quelle ); // <--- Laden 1
//Seitenverhältnisgrößen berechnen
if jpeg.Width / MaxBreite < 1 then
MaxBreite := jpeg.Width;
if jpeg.Height / MaxHoehe < 1 then
MaxHoehe := jpeg.Height;
if jpeg.Width / MaxBreite > jpeg.Height / MaxHoehe
then
begin
breite := round( jpeg.Width / ( jpeg.Width / MaxBreite ) );
hohe := round( jpeg.Height / ( jpeg.Width / MaxBreite ) );
end
else
begin
breite := round( jpeg.Width / ( jpeg.Height / MaxHoehe ) );
hohe := round( jpeg.Height / ( jpeg.Height / MaxHoehe ) );
end;
//WANDLUNG
//try <--- etwas zu spät
jpeg.LoadFromFile( Quelle ); // <--- Laden 2 - Warum schon wieder?
bmp := TBitmap.Create;
try
bmp.width := breite;
bmp.height := hohe;
bmp.canvas.StretchDraw( Rect( 0, 0, bmp.width, bmp.height ), jpeg );
jpeg.assign( bmp );
finally
bmp.Free;
end;
jpeg.SavetoFile( Ziel );
finally
jpeg.Free;
end;
end;
[... sonstiger Code ...]
with ListView1 do
begin
for ii := -1 + Items.Count downto 0 do
begin
dateiname := '';
dateiname := ExtractFileName( ListView1.Items[ ii ].Caption );
Label3.Caption := 'Status: bearbeite Bilder...(' + dateiname + ')';
BildgroesseAendernJPGExt( ListView1.Items[ ii ].Caption, 'c:\test\' + LowerCase( dateiname ), 800, 800 );
end;
end;
So nachdem man den Code jetzt auch lesen kann
habe ich mal die Sachen die mir aufgefallen sind entsprechend kommentiert.
cu
Oliver
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)