Konvertieren Sie TIFF in JPG unter Verwendung von FFMPEG, wobei derselbe DPI beibehalten wird

1238
Anuj

Wir verwenden FFMPEG in unserer Java-Anwendung und ich versuche, eine TIFF-Datei in JPG zu konvertieren, aber die Anforderung ist, die gleiche DPI-Datei wie in der Original-TIFF-Datei zu behalten.

Ich bin neu bei FFMPEG und habe versucht, folgende fehlgeschlagene Versuche auszuführen:

  1. ffmpeg -y -i test.tif test.jpg: Erfolgreiches Konvertieren in JPG, aber DPI wurde von 300 auf 96 reduziert. (Durch Klicken mit der rechten Maustaste auf das Bild -> Eigenschaften -> Registerkarte "Details" -> Attribute für horizontale und vertikale Auflösung) bestätigt.
  2. ffmpeg -y -i test.tif -c:v copy test.jpg: Konvertiert in jpg mit 300 dpi, das tatsächliche Dateiformat ist jedoch immer noch tif. Es scheint, dass nur die Erweiterung in jpg geändert wird.
  3. ffmpeg -y -i test.tif -pix_fmt <format> test.gif (versuchte alle 3 unterstützten Formate: yuvj420p, yuvj422p yuvj444p): In jpg konvertiert, aber dpi wird von 300 auf 96 geändert.
  4. ffmpeg y -i test.tif -r 1 -q:v <range> test.jpg (versuchte verschiedene Bereiche: 1 bis 10): Gleiches Problem.

  5. Versucht -q:vund -qscaleOptionen, aber es ändert nur die Breite und Höhe des Bildes.

Schließlich hörte ich von ImageMagick und das Problem wurde im ersten Versuch mit dem folgenden Befehl gelöst:

  1. magick convert "test.tif" "test.jpg": konvertiert in jpg und dpi ist 300.

Ist es möglich, dasselbe mit FFMPEG zu erreichen. Wenn ja, helfen Sie mir bitte, da ich hier lange festsitze.

3

1 Antwort auf die Frage

0
user8356

Zu beachten ist, dass DPI nichts mit den Daten in einem Bild zu tun hat. Es ist ein Konstrukt, das auf den Ausgabefähigkeiten der Hardware basiert. Ein Bild hat so viele einzelne Pixel, für die sich Daten in der Datei befinden. Das Maß, wie viele Pixel in einem Zoll passen, ist nur für die Ausgabe auf einem Drucker oder der Anzeige auf einem Gerät von Bedeutung. Die Bilddaten selbst haben keine inhärente "Größe" von Pixeln. Einige Bilddateiformate unterstützen Metadaten, die "DPI" enthalten können, sie sind jedoch für das Bild selbst bedeutungslos.

Die DPI-Informationen, die Sie sehen, können von den Programmen, die Sie zur Anzeige der Bilddateien verwenden, willkürlich zugewiesen werden. Wenn in Ihrem Zeichenprogramm angegeben wird, dass das Bild 300 DPI hat, hat dies möglicherweise nichts mit den Daten in der Datei zu tun, die möglicherweise kein DPI-Tag haben. TIFF-Dateien können Metadaten-Tags enthalten (daher ist das Format "Tagged Image-Dateiformat"), z. B. DPI, aber die Bilddaten sind davon nicht betroffen.

Diese Konzepte scheinen für die Menschen besonders schwer zu verstehen, aber die Tatsache, dass ein Bildelement (Pixel) keine Größe hat, haben nur Ausgabegeräte DPI-Messungen. Ihre Forderung, die DPI nicht zu ändern, ist die Vorstellung eines Erfordernisses, Daten zu erhalten, glaube ich. Da JPEG ein verlustbehaftetes Kompressionsschema ist, ist der Umfang der von Ihnen angewendeten Komprimierung viel wichtiger als einige beliebige DPI-Metadaten. Sie könnten diese Bilder zerstören, indem Sie sie im JPEG-Format komprimieren und dabei das DPI-Label beibehalten.