Einzelnen Beitrag anzeigen

Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#10

Re: JPG öffnen, umrechnen und wieder speichern

  Alt 28. Mär 2005, 10:36
Jetzt musste ich es doch mal selbst ausprobieren :
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var Bit1, Bit2: TBitmap32;
const SrcRect: TRect = (Left: 0; Top: 0; Right: 1024; Bottom: 768);
      DstRect: Trect = (Left: 0; Top: 0; Right: 800; Bottom: 600);
begin
  if not OpenDialog1.Execute then
    Exit;
  Bit1 := TBitmap32.Create;
  Bit2 := TBitmap32.Create;
  Bit1.LoadFromFile(OpenDialog1.FileName);
  Bit2.SetSize(DstRect.Right, DstRect.Bottom);
  StretchTransfer(Bit2, DstRect, DstRect, Bit1, SrcRect, sfLinear, dmOpaque);
  Bit2.SaveToFile(OpenDialog1.FileName);
  Bit1.Free;
  Bit2.Free;
end;
Ich übernehme keine Haftung, wenn jemand ein wichtiges Bild überschreiben lässt .

[edit] Ich nehme alles zurück, das wird ja als BMP gespeichert .

[edit2] Jetzt aber:
Delphi-Quellcode:
var Bit1, Bit2: TBitmap32;
      JBit: TJPEGImage;
      Bit: TBitmap;
const SrcRect: TRect = (Left: 0; Top: 0; Right: 1024; Bottom: 768);
      DstRect: Trect = (Left: 0; Top: 0; Right: 800; Bottom: 600);
begin
  if not OpenDialog1.Execute then
    Exit;
  Bit1 := TBitmap32.Create;
  Bit2 := TBitmap32.Create;
  JBit := TJPEGImage.Create;
  Bit := TBitmap.Create;
  Bit1.LoadFromFile(OpenDialog1.FileName);
  Bit2.SetSize(DstRect.Right, DstRect.Bottom);
  StretchTransfer(Bit2, DstRect, DstRect, Bit1, SrcRect, sfLinear, dmOpaque);
  Bit.Width := DstRect.Right;
  Bit.Height := DstRect.Bottom;
  BitBlt(Bit.Canvas.Handle, 0, 0, 800, 600, Bit2.Handle, 0, 0, SRCCOPY);
  JBit.Assign(Bit);
  JBit.SaveToFile(OpenDialog1.FileName);
  Bit1.Free;
  Bit2.Free;
  Bit.Free;
  JBit.Free;
end;
Die Namensgebung ist vielleicht etwas schlecht, naja, hauptsache es geht.
Miniaturansicht angehängter Grafiken
1_947.jpg  
Angehängte Dateien
Dateityp: rar 800-600_561.rar (212,3 KB, 27x aufgerufen)
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat