私は一般的にImageMagickを非常に高く評価しています-しかしconvert
、使用しているコマンドで色を正しく数えることは信頼できません...
PDF ページでカラーが使用されているかどうかを確認する別の方法を提案してもよろしいですか? inkcov
これは、( Ghostscript v9.05 以降が必要です) と呼ばれる (比較的新しい) Ghostscript デバイスに基づいています。各ページの CMYK のインク量を表示します (RGB カラーの場合、内部で CMYK へのサイレント変換を行います)。
まず、Ghostscript を使用してサンプル PDF を生成します。
gs \
-o test.pdf \
-sDEVICE=pdfwrite \
-g5950x2105 \
-c "/F1 {100 100 moveto /Helvetica findfont 42 scalefont setfont} def" \
-c "F1 (100% 'pure' black) show showpage" \
-c "F1 .5 .5 .5 setrgbcolor (50% 'rich' rgbgray) show showpage" \
-c "F1 .5 .5 .5 0 setcmykcolor (50% 'rich' cmykgray) show showpage" \
-c "F1 .5 setgray (50% 'pure' gray) show showpage"
人間の目にはすべてのページがまったく色を使用していないように見えますが、ページ 2 と 3 では実際に色からの明らかなグレー値が混在しています。
次に、各ページのインク カバレッジを確認します。
gs -o - -sDEVICE=inkcov test.pdf
[...]
Page 1
0.00000 0.00000 0.00000 0.02230 CMYK OK
Page 2
0.02360 0.02360 0.02360 0.02360 CMYK OK
Page 3
0.02525 0.02525 0.02525 0.00000 CMYK OK
Page 4
0.00000 0.00000 0.00000 0.01982 CMYK OK
(値 1.00000 は、それぞれのカラー チャネルの 100% のインク適用範囲にマップされます。その0.02230
ため、結果の最初の行では2.23 %
、ページ領域の平均が黒インクで覆われています。) したがって、Ghostscript によって得られる結果inkcov
は、まさに期待どおりのものです。
- ページ 1 + 4 は、C (シアン)、M (マゼンタ)、Y (イエロー) のいずれの色も使用せず、K (ブラック) のみを使用します。
- ページ 2 + 3 は、C (シアン)、M (マゼンタ)、Y (イエロー) のインクを使用しますが、K (ブラック) はまったく使用しません。
次に、元の PDF のすべてのページを変換して、カラースペースを使用しますDeviceGray
。
gs \
-o temp.pdf \
-sDEVICE=pdfwrite \
-sColorConversionStrategy=Gray \
-sProcessColorModel=DeviceGray \
test.pdf
...そして、インクの適用範囲を再度確認します。
gs -q -o - -sDEVICE=inkcov temp.pdf
0.00000 0.00000 0.00000 0.02230 CMYK OK
0.00000 0.00000 0.00000 0.02360 CMYK OK
0.00000 0.00000 0.00000 0.02525 CMYK OK
0.00000 0.00000 0.00000 0.01982 CMYK OK
ここでも、色変換が成功した場合に期待される結果とまったく同じです! (ところで、あなたのコマンドは、[オリジナル]と[グレー変換]の両方のファイルに対してconvert
返さ2
test.pdf
temp.pdf
れます-したがって、このコマンドは正しくありません...)