私のLinuxシステム(Debian)では、JPEGをデコードしてからTIFFに再エンコードできます。使用:
% ffmpeg -i input.jpeg -pix_fmt rgba output.tiff
あるいは、libtiff-toolsを使用することもできます。
% convert -size 256x256 -depth 8 xc:white white.ppm
% ppm2tiff white.ppm white.tiff
% tiffcp -c jpeg white.tiff white.jpg.tiff
tiffcp
JPEG圧縮(損失のあるプロセス)は、作業中に内部的に実行されます。
しかし、私はしたいです。ロスレスJPEGからTIFFコンテナ/形式に混在(またはその逆:入力TIFF / JPEGファイルからJPEGビットストリームを抽出)。 ffmpegまたは他のUNIXコマンドラインツールを使用してこれを実行できますか?たとえば、JPEGをM-JPEGに混在させることができます。ロスレス:
% ffmpeg -framerate 30 -i input%03d.jpg -codec copy output.mjpeg
参考までに、以下は一般的なTIFF / JPEGです。デュアルストリームから元のJPEGを抽出するにはどうすればよいですか?
% tiffinfo white.jpg.tiff
TIFF Directory at offset 0x430 (1072)
Image Width: 256 Image Length: 256
Bits/Sample: 8
Compression Scheme: JPEG
Photometric Interpretation: YCbCr
Orientation: row 0 top, col 0 lhs
Samples/Pixel: 3
Rows/Strip: 256
Planar Configuration: single image plane
Reference Black/White:
0: 0 255
1: 128 255
2: 128 255
JPEG Tables: (574 bytes)
答え1
TIFFからJPEGを抽出する1つの可能な方法は次のとおりです。
$ tiff2pdf -o white.jpg.tiff.pdf white.jpg.tiff
$ pdfimages -all white.jpg.tiff.pdf root
$ file root-000.jpg
root-000.jpg: JPEG image data
tiff2pdf のマニュアルページに次のように表示されます。
入力TIFFにJPEGまたは単一のZip / Deflate圧縮情報が含まれていて、その情報が設定されている場合は、[圧縮なし]および[パスなし]オプションが設定されていないと、PDFファイルはトランスコードされません。
Huffmanテーブルが移動されたため、TIFFはJPEGビットストリームの「エンベロープ」ではないため、反対の操作は最初に考えたよりも少し複雑です。