![]() |
JPG's zusammenfügen
Hi :hi:,
mit dieser Procedure kann ich 2 Images waagerecht aneinanderfügen, wenn sie vom Typ BMP sind.
Delphi-Quellcode:
Das funktioniert auch, aber wie mach ich das mit JPG-Dateien? Wenn ich das auf JPGs anwende, passiert nichts.
image3.picture.assign(image1.picture.bitmap);
Image3.Picture.Bitmap.Width:=Image3.Picture.Bitmap.Width + image1.picture.bitmap.width; image3.picture.Bitmap.Canvas.CopyRect(rect(image1.Picture.width,0,image2.picture.Width+ image1.picture.width,image2.picture.height),image2.picture.bitmap.Canvas, rect(0, 0, image2.picture.width, image2.picture.Height)); Irgendwie muss ich das hinbekommen. Mein Vater wünscht sich das zum Geburtstag und er hat am 12. diesen Monats Geburtstag. Vielleicht hat jemand von euch Tipps, wie ich das dementsprechend anpasse. P.S.: Man könnt es ja von JPG ins BMP umwandeln, danach zusammenfügen und wieder BMP in JPGs umwandeln, nur das scheint nicht sehr elegant. ^^ |
Re: JPG's zusammenfügen
Zitat:
Bei der Grafikmanipulation müssen alle Bilder als Bitmaps im Speicher liegen, also völlig unkomprimiert. Bei LoadFromFile(JPG) wird das JPEG automatisch enkodiert, beim Speichern vice versa. |
Re: JPG's zusammenfügen
Zitat:
Grüße Faux |
Re: JPG's zusammenfügen
Moin chrissi91,
binde mal die Unit JPEG ein. Dann ladest du die Bilder in ein TJPEGImage, und schiebst sie dann in ein Bitmap. Hier mal das Ganze ohne Resourcenschutzbloecke:
Delphi-Quellcode:
Anschliessend kannst du mit den Bitmaps genauso arbeiten wie gehabt :)
var Bitmap: TBitmap;
JPEGImage: TJPEGImage; begin JPEGImage := TJPEGImage.Create(); JPEGImage.LoadFromFile('Pfad zur Datei'); Bitmap := TBitmap.Create(); Bitmap.Assign(JPEGImage); end; Greetz alcaeus |
Re: JPG's zusammenfügen
Okay, danke euch beiden. Da ich jetzt schon fast fertig bin, bleibe ich jetzt erstmal bei der komplizierteren Möglichkeit, da es sich bei meinem Vater immer nur um kleine Bilder handelt.
Das geht auch noch schnell genug. Aber vielleicht werde ich deine Möglichekit danach ersetzen mit TJpegImage |
Re: JPG's zusammenfügen
Wenn ichm it folgender Procedure das BMP wieder in ein JPG umwandeln möchte, merke ich hinterher, dass zwar die Datei die Endung jpg hat, wie ich es im Dialog angebe, die Datei aber so groß wie eine BMP ist.
Delphi-Quellcode:
Diesen Code fand ich in der DP.
If (FileExists(ParamStr(1))) and (LowerCase(ExtractFileExt(ParamStr(1))) = '.bmp') then
begin Try JPG.Create; JPG.Assign(imgPreview.Picture); JPG.SaveToFile(edtSave.Text); Finally FreeAndNil(JPG); end; end; Vielleicht habe ich auch etwas versehentlich entnommen, weil ich dachte, es wäre unwichtig ... |
Re: JPG's zusammenfügen
*push*
Ich finde keinen funktionierenden Code für bmp2jpg. Vll könnt ihr mir ja einen zeigen, den ich in der Suche übersehen habe. |
Re: JPG's zusammenfügen
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Wie willst du denn auf die einzelnen Pixel eines Bildes zugreifen, wenn diese nicht linear und enkodiert im Speicher liegen? @Chrissi: Ich habe es nicht ausprobiert, aber vielleicht ist einfach die Qualität zu hoch eingestellt? |
Re: JPG's zusammenfügen
Versteh ich jetzt nicht. Ich möchte einfach ein Bitmap das im TIMage liegt als ganz normales JPG speichern. Die Qualität soll standardmäßig sein.
Nachdem ich das mit dem etwas weiter oben aufgeführten Code gemacht habe, hieß die Datei *.jpg aber es war keine. Der Computer konnte sie nicht mehr lesen. Deshalb suche ich eine Procedure / Funktion, die ein Bitmap in einem TIMage als JPG speichert. Es muss keine sehr schnelle Procedure sein, hauptsache sie funktioniert. |
Re: JPG's zusammenfügen
mit der unit jpeg und TJPEGImage sollte das möglich sein. in meinem
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:08 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