AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi JPG's zusammenfügen
Thema durchsuchen
Ansicht
Themen-Optionen

JPG's zusammenfügen

Offene Frage von "Chrissi91"
Ein Thema von Chrissi91 · begonnen am 8. Apr 2006 · letzter Beitrag vom 10. Apr 2006
Antwort Antwort
Chrissi91

Registriert seit: 28. Jul 2005
849 Beiträge
 
#1

JPG's zusammenfügen

  Alt 8. Apr 2006, 07:28
Hi ,

mit dieser Procedure kann ich 2 Images waagerecht aneinanderfügen, wenn sie vom Typ BMP sind.

Delphi-Quellcode:
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));
Das funktioniert auch, aber wie mach ich das mit JPG-Dateien? Wenn ich das auf JPGs anwende, passiert nichts.

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. ^^
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

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

Re: JPG's zusammenfügen

  Alt 8. Apr 2006, 07:42
Zitat von Chrissi91:
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. ^^
Auch nicht, wenn es der einzige Weg ist?
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.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: JPG's zusammenfügen

  Alt 8. Apr 2006, 13:39
Zitat von Khabarakh:
Zitat von Chrissi91:
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. ^^
Auch nicht, wenn es der einzige Weg ist?
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.
Redest du hier von der Delphi-Grafikmanipulation, oder von der Windows-API-Grafikmanipulation (wenn es so eine gibt) oder von jeder? Ich denke kaum, dass Photoshop jedes Bild zuerst in ein Bitmap umwandelt.

Grüße
Faux
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#4

Re: JPG's zusammenfügen

  Alt 8. Apr 2006, 13:50
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:
var Bitmap: TBitmap;
  JPEGImage: TJPEGImage;
begin
  JPEGImage := TJPEGImage.Create();
  JPEGImage.LoadFromFile('Pfad zur Datei');
  
  Bitmap := TBitmap.Create();
  Bitmap.Assign(JPEGImage);
end;
Anschliessend kannst du mit den Bitmaps genauso arbeiten wie gehabt

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Chrissi91

Registriert seit: 28. Jul 2005
849 Beiträge
 
#5

Re: JPG's zusammenfügen

  Alt 8. Apr 2006, 15:47
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
  Mit Zitat antworten Zitat
Chrissi91

Registriert seit: 28. Jul 2005
849 Beiträge
 
#6

Re: JPG's zusammenfügen

  Alt 8. Apr 2006, 16:44
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:
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;
Diesen Code fand ich in der DP.

Vielleicht habe ich auch etwas versehentlich entnommen, weil ich dachte, es wäre unwichtig ...
  Mit Zitat antworten Zitat
Chrissi91

Registriert seit: 28. Jul 2005
849 Beiträge
 
#7

Re: JPG's zusammenfügen

  Alt 10. Apr 2006, 17:34
*push*

Ich finde keinen funktionierenden Code für bmp2jpg.

Vll könnt ihr mir ja einen zeigen, den ich in der Suche übersehen habe.
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

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

Re: JPG's zusammenfügen

  Alt 10. Apr 2006, 18:11
Zitat von faux:
Ich denke kaum, dass Photoshop jedes Bild zuerst in ein Bitmap umwandelt.
Schonmal ausprobiert ?
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?
Miniaturansicht angehängter Grafiken
3_x_170.png  
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Chrissi91

Registriert seit: 28. Jul 2005
849 Beiträge
 
#9

Re: JPG's zusammenfügen

  Alt 10. Apr 2006, 20:06
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.
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#10

Re: JPG's zusammenfügen

  Alt 10. Apr 2006, 20:11
mit der unit jpeg und TJPEGImage sollte das möglich sein. in meinem Hier im Forum suchenJPEG-Kompressor wird da ganz schön krass rumkonvertiert... ich hab das glaub ich inzwischen auch schon einigermaßen kommentiert. schau dir einfach die lade- und speicherprozeduren an, vielleicht hilft dir das.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Antwort Antwort


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 06:13 Uhr.
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