Ища способ получить чернильное покрытие из PDF-файла, чтобы составить цитаты для заданий на печать, я натолкнулся на несоответствие, которое я не могу понять.
Существует разница в результатах покрытия чернилами при сравнении трех методов.
При поиске в Интернете мы обнаружили APFill (пробная версия), которая выполняет свою работу: тестовый файл дает следующий результат:
Я искал тот же результат с методами с открытым исходным кодом. Поскольку APFill использует Ghostscript, я использовал устройство inkcov для получения следующего результата:
gs -o - -sDEVICE=inkcov testfile.pdf
, который дал следующий результат:
Page 1
1.00000 1.00000 1.00000 0.76546 CMYK OK
Что явно не совпадает с результатом ApFill. Результат Ghostscript также кажется неправильным, учитывая, что тестовый файл не является почти полным заполненным документом «насыщенного черного».
Так что я немного углубился в исследование и использовал устройство Ghostscript Tiffsep, чтобы разделить PDF-файлы в TIF-файлы для разделения цвета
gs -o test.tif -sDEVICE=tiffsep -r300x300 testfile.pdf
, который я использовал для подсчета значений в процентах, используя numpy и opencv в python:
img = cv2.imread('test(Cyan).tif', 0)
inkcovIMG = img/np.full(img.shape, 255)
print (1-np.mean(inkcovIMG))
img = cv2.imread('test(Magenta).tif', 0)
inkcovIMG = img/np.full(img.shape, 255)
print (1-np.mean(inkcovIMG))
img = cv2.imread('test(Yellow).tif', 0)
inkcovIMG = img/np.full(img.shape, 255)
print (1-np.mean(inkcovIMG))
img = cv2.imread('test(Black).tif', 0)
inkcovIMG = img/np.full(img.shape, 255)
print (1-np.mean(inkcovIMG))
Это дало следующие результаты:
0.5188357078732435
0.4992922045543696
0.5949687851445294
0.5271387924864341
, которые более или менее совпадают с результатом APFill.
Таким образом, мой вопрос здесь будет таким: подсчитывает ли устройство GhostScript inkcov количество пикселей, в котором используется цвет, вместо того, чтобы учитывать количество цвета, используемого в отдельном пикселе? Или я что-то наблюдаю?
Спасибо за любые комментарии!