Sind "Windows Photo Viewer"-Rotationen verlustfrei?

Kann ich verlustbehaftet komprimierte Fotos drehen, die ich in der Windows-Fotoanzeige ansehe , ohne befürchten zu müssen, dass durch die Komprimierung noch mehr Informationen verloren gehen?

Warum versuchst du es nicht? Kopieren Sie ein Bild. Drehen Sie mehrmals und sehen Sie, ob es identisch zurückkommt. Ich habe zum Beispiel bei Picasa festgestellt, dass die Dateien nach der ersten 90-Grad-Drehung etwa 20 % an Größe verlieren. Auf der anderen Seite können Sie einfach eine Software mit dieser expliziten Funktion erhalten. ( PMView Pro ist mein Favorit, da es sehr effizient und superschnell ist, außerdem ist es billig: pmview.com )
@Itai: Ich habe es versucht, und die Größe nimmt nach dem Drehen und Zurückdrehen zu. Das heißt aber nicht, dass Informationen verloren gehen.
Meinst du mit "Windows Photo Viewer" den Standard-Viewer, der mit Windows 7 geliefert wird?
@Matt Grum: Ja.
@Matt Grum: Es wurde Program Files\Windows Photo Viewerfür mein Acer Aspire mit Windows 7 installiert.
Größer! Das ist seltsam, aber angesichts des Anbieters dieser Software bin ich nicht völlig überrascht ;) Zumindest besteht die Möglichkeit, dass sie verlustfrei ist. Was Sie bestätigen müssen, ist ein Bilddifferenz-Tool. Das ist einfach eine Software, die Ihnen den Unterschied zwischen zwei Bildern zeigt und das Original und das gedrehte Bild vergleicht.
Beachten Sie, dass - soweit ich weiß - eine 90-Grad-Drehung (und 180, 270) an und für sich verlustfrei ist, da es sich um einen Austausch von x- und y-Koordinaten handelt (andere Winkel erfordern eine Interpolation). Daher stammt jede der Transformation zugeschriebene Verlustbehaftetheit von der Neukomprimierung. Sie können diese Neuberechnung vermeiden, indem Sie das transformierte Bild in einem verlustfreien Format speichern, aber das ist eindeutig nicht Teil Ihrer Frage, daher werde ich es nicht vorschlagen
@horatio, die Vielfachen von 90 Grad sind ein Sonderfall für die JPG-Komprimierung, bei der es technisch möglich ist, das Bild ohne Komprimierungszyklus zu drehen, indem die komprimierten Daten "einfach" neu angeordnet werden. Es beinhaltet das Entfernen und Anwenden einer Schicht verlustfreier Komprimierung, sodass sich die Dateigröße ändern kann, aber keine verlustbehafteten Vorgänge erforderlich sind.
Ich glaube, ich verstehe Sie, aber mein Punkt ist, dass JPEG ein Festplattenspeicherformat ist und keinen Einfluss auf die Qualität der Transformationen selbst hat. Das heißt, obwohl man oft davon spricht, mit jpegs etc. zu arbeiten, ist die Datei, während sie auf dem Bildschirm angezeigt und manipuliert wird, kein jpeg.
Mann, ich wollte IMMER die Antwort auf diese Frage wissen. IMO sollten sie sein. Aber höchstwahrscheinlich aufgrund des JPEG-Standards ... Ich glaube nicht, dass es technisch möglich ist, diese Operation verlustfrei zu machen.
Der Bildbetrachter von Google Picasa ist verlustfrei. aber es betrügt. es dreht das Bild nicht. es markiert einfach in den Metadaten "dieses Bild gedreht anzeigen".
Die Änderung der Dateigröße ist verdächtig. ich habe kein win7. jemand sollte einen Bildunterschied machen: das Ergebnis sollte komplett schwarz/weiß sein (stellen Sie sicher, dass es keine kleinen Werte gibt).
Hat Picasa das kürzlich geändert? Als ich vor 1 1/2 Jahren bei Google arbeitete, fragte ich tatsächlich den leitenden Architekten danach und die Antwort war, dass sie das Bild zuerst als gedreht markierten, aber dann die Drehung (wodurch die Bildgröße reduziert wurde) durchführten, als die nicht gespeicherten Änderungen angewendet wurden.
Wenn Sie die .meta-Datei löschen (die neben dem Bild erstellt wird), wird das Foto für mich vom Picasa-Viewer als nicht gedreht angezeigt. also ja ... es dreht das Bild nicht, sondern sieht in den Metadaten nur "Anzeige als gedreht".
Ich bin auch daran interessiert zu wissen, ob das Rotieren eines iPhone-Fotos zu einem rekomprimierten JPG führt??? Die obigen Antworten helfen nicht wirklich ... warum zum Teufel ist der integrierte Photo Viewer von Windows 7 immer noch nicht in der Lage, die Rotationsinformationen zu verarbeiten? Jedes andere Programm oder jede andere Plattform zeigt das Foto anhand der Header-Informationen korrekt an.
(i) Picasa speichert Bildtransformationsinformationen in .picasa.iniDateien. Löschen Sie die Datei und starten Sie Picasa neu. Sie werden feststellen, dass Bilder, die mit Picasa gedreht wurden, nicht mehr gedreht werden. (ii) Die Windows 10 Photo Viewer-App scheint die Metadaten zu ändern – die Dateigröße bleibt identisch.

Antworten (1)

Wenn die Abmessungen des Bildes ein Vielfaches von 8 sind (oder 16, wenn Chroma-Subsampling verwendet wird), sind die Drehungen verlustfrei. Andernfalls ist es nicht möglich, das Bild zu drehen, ohne die Blöcke neu zu berechnen, dh das Bild erneut zu komprimieren, was verlustbehaftet ist.

Der Grund dafür ist, dass JPEG-Bilder in eine Reihe von 8x8- oder 16x16-Blöcken aufgeteilt werden, die einzeln komprimiert werden. Unvollständige Blöcke sind nur am rechten Rand und am unteren Rand erlaubt. Ist Ihr Bild also kein exaktes Vielfaches von 8/16, enthält es unvollständige Blöcke, die nach der Drehung am falschen Rand landen.

Ich habe die obige Behauptung mit der Version von Windows Photo Viewer überprüft, die mit Windows 7 geliefert wird. Ich habe zwei Bilder mit Farbrauschen verwendet. Ein Bild war 256 x 256, dh beide Größen waren ein Vielfaches von 8. Das andere Bild war dasselbe, aber auf 253 x 253 zugeschnitten, dh keine Größe war ein Vielfaches von 8. Hier sind die Bilder:

256 x 256

253 x 253

Ich habe dann vier Drehungen gegen den Uhrzeigersinn durchgeführt und den Fotobetrachter nach jeder Drehung geschlossen, um sicherzustellen, dass das Bild in seinem gedrehten Zustand gespeichert wurde.

256 x 256

253 x 253

Es ist nicht erforderlich, eine Subtraktion durchzuführen, um den Unterschied zum 253-Pixel-Bild zu sehen, es ist merklich dunkler und schlammiger!

Ein Unterschied auf dem anderen Bild sieht so aus:

dh die Bilder sind identisch, die Drehungen waren verlustfrei.

Ich weiß, dass ich in der Vergangenheit bei Rotationen gewarnt wurde, dass die Rotation verlustbehaftet sein würde, was bedeutet, dass in Fällen, in denen die Warnung nicht angezeigt wurde, die Transformation verlustfrei war, aber ich habe es nicht überprüft. Ich erinnere mich auch nicht, welche Version von WPV ich verwendet habe, was die Möglichkeit nicht ausschließt, dass MS die Codebasis geändert hat, also kann ich mir nicht sicher sein.
@Tim Ein Bild aus reinem Rauschen ist per Definition der schlimmste Fall für JPEG (oder jeden Komprimierungsalgorithmus), weshalb ich es gewählt habe! Ergebnisse auf echten Bildern würden besser aussehen.
@MattGrum, sehr coole Demo. Ich hoffe, dass alle Hersteller von Digitalkameras ihre Bildgrößen in ganzzahligen Vielfachen von 8 haben!
@MattGrum Ich habe früher im WPV-Team gearbeitet. AFAIK, (und ich bin mir ziemlich sicher) Ihre Antwort ist richtig. Außerdem +1 für eine sehr gründliche Methode zum Beweis Ihrer Hypothese :)
@TrevorBoydSmith Jede Kamera, die ich gesehen habe, hat Bildabmessungen, die ein Vielfaches von 8 oder 16 sind. Die Drehung ist nicht unbedingt der Grund, sie ermöglicht möglicherweise nur eine gewisse Optimierung der JPEG-Pipeline.