AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia JPEG erstellen und Skallieren
Thema durchsuchen
Ansicht
Themen-Optionen

JPEG erstellen und Skallieren

Ein Thema von zeina · begonnen am 1. Feb 2019 · letzter Beitrag vom 1. Feb 2019
 
zeina

Registriert seit: 8. Jun 2018
56 Beiträge
 
#4

AW: JPEG erstellen und Skallieren

  Alt 1. Feb 2019, 10:04
Wenn ich es mit Stretch einstellen ,denn die Qualität nicht schön aussieht

Code:
procedure TForm1.SaveJPEG;
begin
  bmp := TBitmap.Create;
  try
    bmp.Assign(Form1.GetFormImage);
    StringGrid1.Visible := False;
    jpg := TJpegImage.Create;
    try
      jpg.Assign(bmp);
      jpg.SaveToFile(ExtractFilePath(ParamStr(0)) + 'Foto.jpg');
    finally
      jpg.Free;
    end;
  finally
    bmp.Free;
  end;
end;

procedure TForm1.verkleinen;
begin
  jpg := TJpegImage.Create;
  try
    jpg.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'Foto.jpg');
    if jpg.Height > jpg.Width THEN
      scale := min(Round(Screen.Height / jpg.Height),
        Round(Form1.Height / jpg.Height)) // org 50
    else
      scale := min(Round(Screen.Width / jpg.Width),
        Round(Screen.Width / jpg.Width)); // org 50
    bmp := TBitmap.Create;
    try
      bmp.Width := Trunc(jpg.Width / scale);
      bmp.Height := Trunc(jpg.Height / scale);
      bmp.Canvas.StretchDraw(bmp.Canvas.Cliprect, jpg);
      // Self.Canvas.Draw(0,0, bmp);
      jpg.Assign(bmp);
      jpg.CompressionQuality := 100;
      jpg.Compress;
      Image1.Picture.Graphic := jpg;
    finally
      bmp.Free;
    end;
  finally
    jpg.Free;
  end;
end;

procedure TForm1.vergrößen;
begin
  jpg := TJpegImage.Create;
  try
    jpg.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'Foto.jpg');
    if jpg.Height > jpg.Width then
      scale := max(Round(jpg.Height / Screen.Height),
        Round(jpg.Height / Form1.Height)) // org 50
    else
      scale := max(Round(jpg.Width / Screen.Width),
        Round(jpg.Width / Form1.Width));
    bmp := TBitmap.Create;
    try
      bmp.Width := Round(jpg.Width / scale);
      bmp.Height := Round(jpg.Height / scale);
      bmp.Canvas.StretchDraw(bmp.Canvas.Cliprect, jpg);
      Self.Canvas.Draw(0, 0, bmp);
      jpg.Assign(bmp);
      jpg.CompressionQuality := 100;
      jpg.Compress;
      Image1.Picture.Graphic := jpg;
    finally
      bmp.Free;
    end;
  finally
    jpg.Free;
  end;
end;

procedure TForm1.FormResize(Sender: TObject);
begin
 if assigned (Form1) then begin
  if Form1.WindowState = wsMaximized then  begin
   vergrößen;
   end
  else if Form1.WindowState = wsNormal then
   begin
   verkleinen;
   end;
 end;
end;
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz