TIFFをPNG/JPGに変換する際に発生したエラーを指摘してください。

TIFFをPNG/JPGに変換する際に発生したエラーを指摘してください。

入力されたTIFF画像ですがJPG/PNGに変換したいです。googledrive - ダウンロードサンプルリンク

ここに画像の説明を入力してください。

通常、私は2つの画像フォーマット(主にJPGからPNGへ)を変換するときに常に次のコマンドを使用します。convert input.jpg out.png

しかし:

convert input.tiff out.png

次の画像を作成します。 TIFをPNGに変換するのがうまくいかない理由を指摘できますか?これは色空間/圧縮に関連していますか?

ここに画像の説明を入力してください。

もしかして:$identify input.tiff与えられた

input.tiff TIFF 640x480 640x480+0+0 8-bit YCbCr 619120B 0.000u 0:00.000

また、イメージの作成方法の詳細は次のとおりです。

ffmpeg -hide_banner -loglevel error -y -f video4linux2 -i /dev/video0 -vframes 1 fname.tiff;

答え1

重要な点は、YCbCr色空間(RGBではなくビデオ色空間)が変換されないため、生成されたPNGに色空間コメントがどこかにあり、PNGビューアがこのコメントをサポートしていないか、PNGにconvert問題があるためサポートしていないことです。必要に応じて色空間変換をサポートします。

convertオプションがあるので、-colorspace最初に試したことは、ソースとターゲットの色空間を明示的に設定し、その方法で変換されたことを確認することでした。

また、入力画像が白黒で表示されるので、グレースケールPNGに変換することを検討してください(Yまたは強度チャンネルのみが必要です)。

答え2

色空間情報はTIFFの一部なので(この部分はTの略です。ファイルには画像構造に関する実際の情報があるため目立つ)、これは変換が間違っていることを意味します(または他のビューアが「成功」を「間違って」処理できるように入力ファイルが破損しています)。

したがって、解決策は次のとおりです。convert/imagemagick(Webの歴史上最大のサーバー脆弱性ソースの1つ)を使用しないでください。とにかく私の経験では非常に遅いです。

努力するeconvert~から正確な画像プロジェクト。

それ以外の場合は、Python PIL / Pillowが正しく機能する可能性があります。これが実際に最初です。チュートリアルの例(最小修正)テキストファイルに保存して実行ファイルとして表示し、ファイルで使用してください。

#!/usr/bin/env python3
import os, sys
from PIL import Image

for infile in sys.argv[1:]:
    filename, extension = os.path.splitext(infile)
    outfile = f"{filename}.jpg"
    if infile != outfile:
        try:
            with Image.open(infile) as im:
                im.save(outfile)
        except OSError:
            print(f"cannot convert {infile}")

答え3

私が見つけた解決策は、まず次のようにYCbCr変換することです。RGBAtiff2rgba。 (libtiffパッケージに含まれています)。次に、対応するRGB tiffを別の形式に変換します。

$ tiff2rgba input.tiff out.tiff
$ convert out.tiff final.png

追加情報:

$ identify input.tiff
input.tiff TIFF 640x480 640x480+0+0 8-bit YCbCr 618733B 0.000u 0:00.000
$ identify out.tiff
out.tiff TIFF 640x480 640x480+0+0 8-bit sRGB 858070B 0.000u 0:00.000

imagemagickなしで使用するなど、より簡潔な答えがあるか、tiff2rgbaなぜこのようなことが発生するのかを知っている場合は、自由に共有してください。ありがとうございます。

関連情報