2

私はImageMagickの変換プログラムを使用してPDFファイルを個々の画像に分割しています。出力ファイルとして「-」を指定することにより、出力をSTDOUTに書き込むことができます。

これらすべての画像を処理してから、再マージしたいと思います。残念ながら、出力を新しいプロセスにパイプすると、ストリームが個々の画像ファイルとして認識されません。すべての画像をディスクに書き込んでから別のプログラムで読み取るのは明らかに時間の無駄です。複数のファイルをSTDOUTパイプに書き込んで、それぞれが別の画像編集インスタンスのSTDINになるようにする方法はありますか? これらの画像編集インスタンスの出力を、最終的なマージプロセスの入力にマージできますか?

4

2 に答える 2

2

ツールが一般的に認識する標準化された方法で、複数のファイルを stdout に実際に送信することはできません。stdout と stdin はストリームであるため、特定の部分が 1 つのファイルからのものか別のファイルからのものかを判断する方法はありません。

一部のツールには、改行やヌル文字など、stdout と stdin でレコードを区切る標準的な方法がありますが、いずれかを含む可能性のあるほとんどの画像形式と同様に、任意のデータに対しては機能しません。

いくつかのオプションがあります:

  1. 複数のファイルを使用するだけです。おそらく、あなたが思っているほど遅くはないでしょう。ファイルが大きすぎない場合、すべてがキャッシュ内で発生し、実際にディスクにヒットすることはありません。
  2. 複数のフレームまたはレイヤーをサポートする形式を使用してください。編集するツールがこの形式を理解する限り、問題はありません。基本的に、この形式は異なるファイル間の区切り文字になります。比較的標準的で、複数のページ/レイヤーをサポートする 1 つの形式は TIFF です。

    convert my.pdf tiff:- | convert - -flip - | convert - my.flipped.pdf
    
  3. ファイルの編集に ImageMagick を使用している場合は、ファイルを分割したり、各ページを編集したり、再結合したりせず、すべてを 1 つのパスで実行してください。例えば:

    convert my.pdf -flip my.flipped.pdf
    

    PDF のページがめくられ、新しい PDF が一度に作成されます。

于 2012-09-26T05:41:27.143 に答える