Ich möchte die EXIF-Informationen (einschließlich Miniaturansichten, Metadaten, Kamerainformationen ... alles!) Aus JPEG-Dateien entfernen, aber ich möchte sie nicht erneut komprimieren, da das erneute Komprimieren des JPEG die Qualität beeinträchtigt und normalerweise die Qualität erhöht Dateigröße.
Ich suche nach einer Unix / Linux-Lösung, noch besser, wenn ich die Befehlszeile benutze. Verwenden Sie nach Möglichkeit ImageMagick (Konvertierungswerkzeug). Wenn dies nicht möglich ist, wäre ein kleines Python-, Perl-, PHP-Skript (oder eine andere unter Linux gebräuchliche Sprache) in Ordnung.
Es gibt eine ähnliche Frage, die sich jedoch auf .NET bezieht .
unix
imagemagick
jpeg
exif
Denilson Sá Maia
quelle
quelle
Antworten:
exiftool erledigt den Job für mich, es ist in Perl geschrieben und sollte für Sie auf allen Betriebssystemen funktionieren
https://exiftool.org/
Verwendung :
quelle
sudo apt-get install libimage-exiftool-perl
brew install exiftool
-overwrite_original
Schalter hinzu und das Programm erstellt die Sicherungsdateien nicht.exiftool -EXIF= image.jpg
Mit imagemagick:
quelle
-strip
entfernt Farbprofile. Für alle, die versuchen, EXIF-Daten zu entfernen,ImageMagick verfügt über den Parameter -strip , komprimiert das Bild jedoch vor dem Speichern erneut. Daher ist dieser Parameter für meine Bedürfnisse unbrauchbar.
In diesem Thema aus dem ImageMagick-Forum wird erklärt, dass verlustfreie JPEG-Operationen in ImageMagick nicht unterstützt werden (wenn sich dies ändert, posten Sie bitte einen Kommentar mit einem Link!) Und die Verwendung von jpegtran (von libjpeg) vorgeschlagen wird:
(Wenn Sie sich nicht sicher sind, ob ich meine eigene Frage beantworte, lesen Sie dies und das und das )
quelle
jpegtran -copy none image.jpg newimage.jpg
-progressive
Dadurch wird die Größe verringert.Vielleicht möchten Sie auch einen Blick auf Exiv2 werfen - es ist sehr schnell (C ++ und keine Neukomprimierung), es ist eine Befehlszeile und es bietet auch eine Bibliothek für die EXIF-Manipulation, mit der Sie verknüpfen können. Ich weiß nicht, wie viele Linux-Distributionen es verfügbar machen, aber in CentOS ist es derzeit im Basis-Repo verfügbar.
Verwendung:
quelle
Ich würde vorschlagen
jhead
:Nur 123 KB unter Debian / Ubuntu werden nicht erneut komprimiert. Beachten Sie jedoch, dass das Bild mutiert. Kopieren Sie daher das Original, wenn Sie es benötigen.
quelle
Ich habe dieses Projekt kürzlich in C durchgeführt. Der folgende Code bewirkt Folgendes:
1) Ruft die aktuelle Ausrichtung des Bildes ab.
2) Entfernt alle in
APP1
(Exif-Daten) undAPP2
(Flashpix-Daten) enthaltenen Daten durch Ausblenden.3) Erstellt die
APP1
Orientierungsmarkierung neu und setzt sie auf den ursprünglichen Wert.4) Findet den ersten
EOI
Marker (Bildende) und schneidet die Datei ab, falls erforderlich.Einige Dinge, die zuerst zu beachten sind, sind:
1) Dieses Programm wird für meine Nikon-Kamera verwendet. Das JPEG-Format von Nikon fügt am Ende jeder erstellten Datei etwas hinzu. Sie codieren diese Daten bis zum Ende der Bilddatei, indem sie eine zweite
EOI
Markierung erstellen . Normalerweise lesen Bildprogramme bis zum erstenEOI
gefundenen Marker. Nikon hat danach Informationen, die mein Programm abschneidet.2) Da dies für das Nikon-Format gilt, wird die
big endian
Bytereihenfolge angenommen. Wenn Ihre Bilddatei verwendet wirdlittle endian
, müssen einige Anpassungen vorgenommen werden.3) Beim Versuch,
ImageMagick
Exif-Daten zu entfernen, stellte ich fest, dass ich eine größere Datei hatte als die, mit der ich begonnen hatte. Dies lässt mich glauben, dassImagemagick
die zu entfernenden Daten verschlüsselt und an einer anderen Stelle in der Datei gespeichert werden. Nennen Sie mich altmodisch, aber wenn ich etwas aus einer Datei entferne, möchte ich, dass eine Dateigröße kleiner ist, wenn nicht dieselbe. Alle anderen Ergebnisse deuten auf Data Mining hin.Und hier ist der Code:
Hoffe das hilft jemandem!
quelle
Hinweis zur Vereinfachung: Wenn Sie unter Windows arbeiten, können Sie eine REG-Datei auf die Registrierung anwenden, um einen Eintrag im Kontextmenü zu installieren, sodass Sie Metadaten einfach entfernen können, indem Sie mit der rechten Maustaste auf die Datei klicken und den Befehl auswählen.
Beispiel: Denken Sie daran, die Pfade so zu bearbeiten, dass sie darauf verweisen, wo die ausführbaren Dateien auf Ihrem Computer installiert sind.)
Für JPEG-, JPG-, JPE- und JFIF-Dateien: Befehl " Metadaten entfernen "
(mit ExifTool wird die Originaldatei als Sicherung beibehalten)
exiftool -all= image.jpg
JPG-RemoveExif.reg
Für PNG-Dateien: Befehl "In minimiertes PNG konvertieren "
(mit ImageMagick werden Daten geändert, die die Originaldatei überschreiben)
convert -background none -strip -set filename:n "%t" image.png "%[filename:n].png"
PNG-Minify.reg
Verwandte: Konvertieren Sie PNGs in ICO im Kontextmenü .
quelle
Wir haben dies verwendet, um Breitengraddaten aus der TIFF-Datei zu entfernen:
exiv2 mo -M"del Exif.GPSInfo.GPSLatitude" IMG.TIF
Hier können Sieexiv2 -pa IMG.TIF
alle Metadaten auflisten.quelle
Für verlustfreie EXIF-Streifen können Sie libexif verwenden , das mit cygwin verfügbar ist . Entfernen Sie sowohl EXIF als auch Miniaturansicht, um ein Bild zu anonymisieren:
Drag-
.bat
and -Drop- Datei zur Verwendung mit Cygwin:quelle
Andere Software:
MetAbility QuickFix
"MetabilityQuickFix entfernt alle Ihre persönlichen Informationen und GPS-Standortdaten mit nur einem Mausklick von all Ihren Fotos. Es entfernt alle Metadatenelemente aus Exif-, Iptc- und XMP-Datenblöcken sicher aus Ihren JPEG-Dateien und erstellt automatisch Sicherungskopien der Originaldateien ""
JPEG & PNG Stripper
"Ein Tool zum Entfernen / Bereinigen / Entfernen nicht benötigter Metadaten (Junk) aus JPG / JPEG / JFIF- und PNG-Dateien. Die Bildqualität wird nicht beeinflusst. Enthält Befehlszeilenunterstützung. Geben Sie einfach einen Ordner oder eine Datei in der Befehlszeile an (Platzhalter zulässig)."
quelle
Wenn Sie jpegoptim bereits verwenden, können Sie damit auch das Exif entfernen.
quelle