Forum: PC Hard- und Software Rechteckigen Bereich in JPEG-Datei ohne Qualitätsverlust ersetzen


von Guido C. (guidoanalog)


Lesenswert?

Hallo,

ich möchte in einem Bild einen rechteckigen Bereich ausschneiden und 
dort einen Bereich aus einem anderen Bild einfügen. Beide Bilder liegen 
als JPEG-Datei (*.jpg) vor. Gibt es ein Programm, dass es ermöglicht 
dies ohne Qualitätseinbußen durchzuführen?

Ich kenne leider nur die Möglichkeiten JPEG-Dateien mittel Jpegcrop 
verlustfrei beschneiden zu können.

Für alle die es interessiert hier noch die Motivation für mein Ansinnen:
Ich habe ein Bild, bei dem der Hintergrund ausgetauscht wurde. Leider 
wurde beim Freistellen des Objekts ein Fehler gemacht, so dass an einer 
Stelle innerhalb des Objekts der Hintergrund durchscheint. Da ich das 
Originalbild besitze dachte ich mir ich könnte einen rechteckigen 
Ausschnitt aus dem Bild herausschneiden und in die Fotomontage 
"einpflanzen". Dies würde mir das erneute Freistellen des Objekts 
ersparen. Leider habe ich die Bilder nur im JPEG Format.

Mit freundlichen Grüßen
Guido

: Verschoben durch Moderator
von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Ich schieb' das mal in die PC-Software.

Bei JPEG hast du an sich natürlich schon mal Artefakte, die mehr oder
weniger auffallen.  Die kannst du nicht wieder loswerden.

Ansonsten hindert dich niemand, beide Bilder bspw. im Gimp zu öffnen,
in deiner gewünschten Quelle einen Bereich zu kopieren und diesen dann
ins Ziel einzufügen.  Sinnvollerweise machst du das erstmal als neue
Ebene (Edit -> Paste as -> New Layer), die kannst du danach in ihrer
Lage noch fein justieren.

Beim Auspacken der JPEGs wird die ursprüngliche verlustbehaftete
Kompression ja ohnehin erstmal aufgedröselt, denn für die Bearbeitung
musst du auf den rohen Pixeln basteln.  Ist bei der Speichergröße
heutiger Computer zum Glück kein Problem mehr.

Wenn du am Ende wieder in JPEG speicherst (beim Gimp geht das nur
über "Exportieren"), wird eine neue JPEG-Kompression über die Daten
angeleiert, d. h. es entstehen neue (andere) Artefakte.

von Amateur (Gast)


Lesenswert?

Kein Problem und gleichzeitig unmöglich.

Im JPEG-Format werden zwecks Kompression Bereiche zusammengefasst.

Normalerweise trifft Dein Rechteck mitten in Bereiche und nicht 
Bereichsgrenzen/Übergänge. Die (Grenzen) übrigens auch nicht vertikal 
oder horizontal angeordnet sind. Selbst wenn Du irgendwo eine solche 
Grenze triffst, ist es unwahrscheinlich, dass in senkrechter 
Verlängerung oder horizontaler Folge  das Gleiche passiert.
Also muss entlang der „Schnittkante“ die Kompression, auf beiden Seiten, 
aufgelöst werden und entsprechend dem neu entstehenden Bild komprimiert 
werden.
Dass das ohne Verluste geht, kann ich mir nicht vorstellen.

von oszi40 (Gast)


Lesenswert?

Guido C. schrieb:
> dass es ermöglicht
> dies ohne Qualitätseinbußen durchzuführen?

Ohne Verluste ist kaum üblich, da die komprimierten .jpg Bilder 
üblicherweise ausgepackt werden. Man kann jedoch Bilder mit möglichst 
hoher Auflösung aufnehmen und sich später mit einer geringeren Auflösung 
zufrieden geben. Es ist auch eine Frage des jeweiligen 
Komprimierungsverfahrens und der dazu benutzten SW.  Es verträgt sich 
nicht jede SW mit exotischen Sonderlösungen. 
https://de.wikipedia.org/wiki/JPEG EXIF muß auch noch funktionieren. 
https://de.wikipedia.org/wiki/Exchangeable_Image_File_Format

von Peter II (Gast)


Lesenswert?

Möglich ist das. Bei JPEG werden immer 8x8 Pixel zusammengefasst. Damit 
muss dein Rechteck immer an so einer grenze Liegen. Das könnte aber 
recht ungenau werden.

Aber ob es dafür fertige Software gibt weis ich nicht, alle Programm die 
ich kenne komprimieren beim speichern neu.

Wenn es dir sehr wichtig ist, müsste du selber etwas Programmieren.

von Guido C. (guidoanalog)


Lesenswert?

Hallo,

vielen Dank für Eure Unterstützung.

Jörg W. schrieb:
> Ansonsten hindert dich niemand, beide Bilder bspw. im Gimp zu öffnen,
> in deiner gewünschten Quelle einen Bereich zu kopieren und diesen dann
> ins Ziel einzufügen.

Die Vorgehensweise mit GIMP ist mir klar. Ich lege das Originalbild als 
Layer unter das bereits retuschierte Bild und schneide im retuschierten 
Bild den fehlerhaften Bereich aus. An dieser Stelle "schaut" das 
Originalbild durch. Abschließend muss ich das Bild noch abspeichern, was 
zu einem Qualitätsverlust führt. Letzteres würde ich gerne umgehen.

Amateur schrieb:
> Kein Problem und gleichzeitig unmöglich.

Irgendwie kommt es mir auch so vor.

Amateur schrieb:
> Normalerweise trifft Dein Rechteck mitten in Bereiche und nicht
> Bereichsgrenzen/Übergänge.

Ich denke ich könnte den zu ersetzenden Bereich so auswählen, dass seine 
Ränder auf den von Dir erwähnten Bereichsgrenzen liegen. Ich habe hier 
verhältnismäßig viel "Spiel".

Amateur schrieb:
> Also muss entlang der „Schnittkante“ die Kompression, auf beiden Seiten,
> aufgelöst werden und entsprechend dem neu entstehenden Bild komprimiert
> werden.

Genau hier liegt wohl das Problem. Wenn ich es richtig verstanden habe 
stehen die einzelnen Blöcke innerhalb einer JPEG-Datei nicht für sich 
alleine sondern sie stehen in Beziehung mit angrenzenden Blöcken. Die 
Herausforderung ist folglich die neuen Blöcke hineinzurechnen.

Peter II schrieb:
> Aber ob es dafür fertige Software gibt weis ich nicht, alle Programm die
> ich kenne komprimieren beim speichern neu.

Bei meiner Suche bin ich mittlerweile auf "RealWorld Photos" gestoßen. 
Angeblich ist mit diesem Programm "Lossless .jpg re-saving" möglich. In 
wieweit dies stimmt kann ich derzeit nicht beurteilen.
http://www.rw-designer.com/photo-editor

Mit freundlichen Grüßen
Guido

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Guido C. schrieb:
> Abschließend muss ich das Bild noch abspeichern, was zu einem
> Qualitätsverlust führt.

a) Bild nicht als JPG speichern

b) beim Speichern sollte die JPG-Kompression einstellbar sein, um den 
Qualitätsverlust zu reduzieren

von Markus (Gast)


Lesenswert?

Kannst Du nicht beide Bilder in einem verlustlosen Format wie PNG 
abspeichern und damit weiterarbeiten?

von Guido C. (guidoanalog)


Lesenswert?

Hallo,

Rufus Τ. F. schrieb:
> a) Bild nicht als JPG speichern
>
> b) beim Speichern sollte die JPG-Kompression einstellbar sein, um den
> Qualitätsverlust zu reduzieren

Markus schrieb:
> Kannst Du nicht beide Bilder in einem verlustlosen Format wie PNG
> abspeichern und damit weiterarbeiten?

Ihr habe natürlich recht. Doch leider sind die Bilder nicht von mir 
erstellt worden. Anderenfalls wäre das Malheur (vermutlich) auch nicht 
passiert. Mehr als die zwei JPEG-Dateien gibt es leider nicht mehr.

Mit freundlichen Grüßen
Guido

von Mathias (Gast)


Lesenswert?

Jpegtran gibts auch in einer modifizierten Version, wo auf Makroblock 
ebenen andere Jpegs verlustlos einfügen kann.

http://jpegclub.org/jpegtran/

von Toxic (Gast)


Angehängte Dateien:

Lesenswert?

Guido C. schrieb:
> Abschließend muss ich das Bild noch abspeichern, was
> zu einem Qualitätsverlust führt. Letzteres würde ich gerne umgehen.


Ich nehme an,dass es sich bei Deinem Bild z.B.um eine hochwertige 
Architekturaufnahme handeln muss,wo es auf absolute Praezision ankommt.
Wenn dem nicht so ist, sehe ich ehrlich gesagt kein Problem das ganze 
wieder als jpg abzuspeichern - wobei ich dann bei den Optionen 100% 
jpg-Qualitaet eingeben wuerde.(100% bedeutet hier natuerlich trotzdem 
geringe "Verluste")
Das retouchierte Bild wurde ja garantiert schon einmal mit 
Kompressionsverlusten abgespeichert.Es nun ein 2.Mal wieder als jpg 
abzuspeichern seh ich nicht als besonders tragisch an.

Teste es - Du wirst Muehe haben Artifakte ausfindig zu machen.

Im Anhang habe ich 2 Bilder:
Dave x 1.jpg ist das Original.
Dieses Bild habe ich dann 10(!) mal abgespeichert.Also immer wieder eine 
Speicherung von der zuvor gemachten Speicherung - mir persoenlich reicht 
die Qualitaet.Ich seh so gut wie keinen Unterschied - lediglich bei der 
roten Farbe (ueber dem Schraubenschluessel)laesst sich eine feine 
Farbtonverschiebung erkennen - moeglicherweise noch woanders,aber wie 
schon gesagt:mir isses gut genug.

von Amateur (Gast)


Lesenswert?

>Ich denke ich könnte den zu ersetzenden Bereich so auswählen, dass seine
>Ränder auf den von Dir erwähnten Bereichsgrenzen liegen. Ich habe hier
>verhältnismäßig viel "Spiel".

Du musst dabei aber zwei Blockgrenzen treffen. Die des Bereiches, der 
ausgeschnitten werden soll und gleichzeitig die des einzufügenden 
Bereiches...

Natürlich kannst Du auch nach dem Motto: "Was weg ist weg" arbeiten.

Du packst Dein Bild aus oder - was nach der Kompression - noch über ist.
Du packst das einzufügende Bild aus - ebenfalls was noch über ist.
Am Besten in ein Lossless-Format (Bmp oder so).
Überlagerst diese im Zwischenformat und verpackst das Ergebnis erneut.
So erreichst Du wahrscheinlich das Maximum, was noch möglich ist.

Oder Du lässt den ganzen Kram im Zwischenformat um keine weiteren Fehler 
zu produzieren.

Mehr ist meiner Meinung nicht möglich. Wundere Dich aber nicht wenn, 
beim Neukomprimieren, an den Schnittkanten Artefakte entstehen.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Amateur schrieb:
> Am Besten in ein Lossless-Format (Bmp oder so).

Lieber TIFF, das kennt wenigstens noch eine LZW-Kompression. ;)

von Georg (Gast)


Lesenswert?

Guido C. schrieb:
> Mehr als die zwei JPEG-Dateien gibt es leider nicht mehr.

Der Verlust steckt in diesen Bildern schon drin, wenn du JPEG 
gespeichert hast, wieviel hängt von der Einstellung beim Speichern ab. 
Was da jetzt noch vorhanden ist, kannst du natürlich in irgendeine 
Bildverarbeitung einlesen, mehr aber auch nicht. Von da an kannst du 
verlustfrei arbeiten, wenn du anschliessend TIFF oder wenigstens JPEG 
höchster Qualitätsstufe speicherst. Aber was nicht mehr da ist kommt 
auch nie mehr wieder.

Georg

von Planlos (Gast)


Lesenswert?

Jörg W. schrieb:
> Lieber TIFF, das kennt wenigstens noch eine LZW-Kompression.

TIFF ist nur ein Containerformat, zu den darin erlaubten 
Komprimierungs-Algorithmen gehört lustigerweise auch die 
verlustbehaftete JPEG-Kompression :)

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Planlos schrieb:
> TIFF ist nur ein Containerformat, zu den darin erlaubten
> Komprimierungs-Algorithmen gehört lustigerweise auch die
> verlustbehaftete JPEG-Kompression :)

Ja, die muss man ja nicht benutzen.

BMP ist aber ein Primitivst-Format, das keinerlei Kompression kennt.

von Peter II (Gast)


Lesenswert?

Jörg W. schrieb:
> BMP ist aber ein Primitivst-Format, das keinerlei Kompression kennt.

https://de.wikipedia.org/wiki/Windows_Bitmap

Windows-Bitmaps werden entweder unkomprimiert oder verlustfrei mit 
RLE-Komprimierung

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Peter II schrieb:
> RLE-Komprimierung

Mag für'n paar einfache Strichzeichnungen gehen, für normale Fotos
ist das völlig uninteressant.  Da kann es passieren, dass die
„Komprimierung“ die Datei eher aufbläht …

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.