Einzelnen Beitrag anzeigen

Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#6

Re: JPEG "on the Fly" Größe ändern

  Alt 26. Okt 2006, 11:00
Nochmal, ein TImage ist eine Komponente, die nur für die Anzeige gedacht ist. Worauf du zugreifst ist ein TPicture, da gibt es dann schon andere Eigenschaften. Da kannst du ja einfach mal in die Hilfe schauen.
An sich solltest du (imho) lieber eine andere Komponente nehmen. TJPEGImage bietet sich eigentlich direkt an. Du kannst dir einfach eine Kopie erzeugen, hier die Größe ändern und die Kopie speichern:

Delphi-Quellcode:
procedure changeSize(const image : TJPEGImage; out resizedImage : TJPEGImage; const newHeight : Integer);
begin
  if assigned(resizedImage) then
  begin
    FreeAndNil(resizedImage);
  end;

  if assigned(image) then
  begin
    resizedImage := TJPEGImage.Create;
    resizedImage.assign(image);
    
    resizedImage.Height := newHeight;
    resizedImage.Width := round(image.Width * newHeight / image.Height);
  end;
end;
Hier würdest du jetzt das resizedImage zurück bekommen. Das kannst du dann wie jede JPEG speichern oder anzeigen oder was auch immer.

Gruß Der Unwissende
  Mit Zitat antworten Zitat