![]() |
@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 .´.. |
Gerade habe ich "Suchen"-Funktion in diesen Forum nach "jpeg" gesucht, und dabei kam dass hier raus ..
![]() Sicher kommste damit weiter ;) @Daniel B: Warste wieder schneller ;) |
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; |
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; |
hab ich schon, denke damit komme ich auch soweit klar... vielen dank für deine hilfe, und entschuldige meine unklare fragestellung.
gruss aaron |
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 20:05 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