Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi JPG - grösse verändern.... (https://www.delphipraxis.net/3363-jpg-groesse-veraendern.html)

Darty 9. Mär 2003 16:04

@Aaron: Dass ist logisch. Du veränderst nur die Darstellung vom Bild, und nicht das Bild selbst.
Also heisst Deine Frage eigentlich: Wie verändere ich die Grösse eines Bildes und speichere es als jpg.

Ich schau mal ob ich was habe für Dich, da ich mich damit noch nicht beschäftigt hatte .´..

Darty 9. Mär 2003 16:09

Gerade habe ich "Suchen"-Funktion in diesen Forum nach "jpeg" gesucht, und dabei kam dass hier raus ..

JPEG verkleinern

Sicher kommste damit weiter ;)

@Daniel B: Warste wieder schneller ;)

aaron 9. Mär 2003 16:13

au weja, ich habe mich dann falsch ausgedrückt, entschuldigung!

das mit dem öffnen und speichern habe ich hier, nur das anpassen der höhe ist nicht so wie ich es haben möchte...


Code:
procedure TForm1.Button7Click(Sender: TObject);
var
  i: Integer;
  InFileName, OutFileName: string;
  FilePath, FileName: string;
  JPEG  : TJPEGImage;
  bFrom,bTo : tBitmap;
  aRect : tRect;
    sFile: string;
  wWidth, wHeight: word;
  H1,B1,H2:integer;
begin
       sFile := OpenDialog1.FileName;
  GetJPGSize(sFile, wWidth, wHeight);
  Edit1.Text := IntToStr(wWidth);
   B1:= strtoint(edit1.text);
    Edit2.Text := IntToStr(wHeight);
    H1:= strtoint(edit2.text);

  try
    BFrom := TBitmap.Create;
    BTo := TBitmap.Create;

    JPEG := TJPEGImage.create;
    JPEG.LoadFromFile(opendialog1.FileName);

    //in ein Bitmap übergeben und jpeg freigeben
    BFrom.assign(jpeg);
    JPEG.free;

    //Rechteck als &Zeichnungsfläche zur verfügung stellen
    aRect.top := 0;
    aRect.left := 0;
    aRect.right := 150;
    aRect.Bottom := 150;                  

    //Grösse des Zielbitmaps festlegen
      bTo.Height := 150;     // hier müsste sich die höhe anpassen ????
      bTo.width := 51; // Auf Breite 51 Pixel setzen
     Image1.Proportional := True; //Damit keine Verzerrung entsteht
    //bitmap in das rechteck zeichnen und dem neuen bitmap &Bto& verkleinert übergeben
    Bto.canvas.StretchDraw(ARect, bFrom);

    //verkleinertes Bitmap wieder in jpeg umwandeln
    JPEG := TJPEGImage.create;
    JPEG.Assign(bTo);
    //Kompressionsqualität einstellen und abspeichern
    JPEG.Performance:=jpBestQuality ;

  //  JPEG.compressionQuality := trackbar1.Position;
    JPEG.JPEGNeeded;
    JPEG.compress;
    InFileName:=opendialog1.FileName;
    FileName:=ExtractFileName(InFileName);
   // FilePath:=IncludeTrailingBackSlash(OutDirEdit.Text);
    OutFileName:=Concat('c:\test.jpg');
    JPEG.savetofile(OutfileName);
  //  StatusBar1.SimpleText:='Fertig!';
    BFrom.Free;
    Bto.free;
    jpeg.free;
    except
  end;

    end;

Darty 9. Mär 2003 22:13

Habe es mir zwar noch nicht genau angeschaut, und habe auch gerade nichts passendes von mir ..

Aber hast Du Dir mal die Codes von FuckRacism angeschaut ?
Code:
procedure TForm1.resizepictur(dir: string; width, height: integer);
var i:integer;
    bmp:TBitmap;
    jpeg:TJpegImage;
   begin
   Jpeg:=TJpegImage.Create;
   try
   jpeg.LoadFromFile(dir);
    bmp:=TBitmap.Create;
      try
        If jpeg.width>jpeg.Height then
         begin
          bmp.width:=width;
          bmp.height:=height;
         end else
         begin
          bmp.width:=height;
          bmp.Height:=width;
         end;
        bmp.canvas.StretchDraw(Rect(0,0,bmp.width,bmp.height),jpeg);
        jpeg.assign(bmp);
      finally
       bmp.free;
      end;
     jpeg.SavetoFile(dir);
   finally
    jpeg.free;
   end;
end;

aaron 9. Mär 2003 22:24

hab ich schon, denke damit komme ich auch soweit klar... vielen dank für deine hilfe, und entschuldige meine unklare fragestellung.

gruss aaron

Darty 9. Mär 2003 22:33

Macht nix, das kleine Program das ich schrieb konnte ich gut gebrauchen, da ich gerade an ein anderen Programm dran war wo ich mit den Eigenschaften je nach Situation wechseln musste und dann am Ende verwirrt war. Nun kann mit Hilfe dieser Orientieren :D


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:02 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz