История изменений
Исправление Zubok, (текущая версия) :
Да, на эту страницу результаты кажутся странными. На самом деле, там все страницы с текстом имеют большой ink coverage по всем цветам. Я подумал, что, может быть, как-то неправильно интерпретируем результаты (документация на сайте, кстати, упорно молчит, как их интерпретировать). Я заглянул в исходник gs, а там вот такое:
* output is plain text; one line per page.
* columns 1 through 4 give the fraction of pixels containing
* c, m, y and black ink.
* column 5 is the string 'CMYK'.
* column 6 is 'OK' if everything went fine, 'ERROR' if there
* was a problem.
fraction of pixels containing c, m, y and black ink! Вот что выдает это устройство! Хе-хе-хе.
Еще более интересно то, что исходник открыл одну тайну: там еще один девайс в этом же файле описан - ink_cov. И комментарий к нему: gave ink coverage values not ratecoverage.
И выдает он числа уже в процентах, если судить по коду. И считает по-другому:
for (y = 0; y < height; y++) {
byte *row, *end;
code = gdev_prn_get_bits(pdev, y, line, &row);
if (code < 0)
break;
end = row + raster;
for (; row < end; row += 4) {
dc_pix += row[0];
dm_pix += row[1];
dy_pix += row[2];
dk_pix += row[3];
++total_pix;
}
}
...
{
double c = -1., m = -1., y = -1., k = -1.;
if (code == 0) {
c = (dc_pix*100) / (total_pix*255);
m = (dm_pix*100) / (total_pix*255);
y = (dy_pix*100) / (total_pix*255);
k = (dk_pix*100) / (total_pix*255);
}
Раз на 100 умножает, то это в процентах.
Вывод на твою третью страницу:
gs -q -dNOPAUSE -dBATCH -dFirstPage=3 -dLastPage=3 \
-sDEVICE=ink_cov -o - 456.pdf
1.81716 1.58161 1.31144 0.10283 CMYK OK
А вот на первую:
gs -q -dNOPAUSE -dBATCH -dFirstPage=1 -dLastPage=1
-sDEVICE=ink_cov -o - 456.pdf
53.70799 51.41258 13.93754 2.18800 CMYK OK
Исходная версия Zubok, :
Да, на эту страницу результаты кажутся странными. На самом деле, там все страницы с текстом имеют большой ink coverage по всем цветам. Я подумал, что, может быть, как-то неправильно интерпретируем результаты (документация на сайте, кстати, упорно молчит, как их интерпретировать). Я заглянул в исходник gs, а там вот такое:
* output is plain text; one line per page.
* columns 1 through 4 give the fraction of pixels containing
* c, m, y and black ink.
* column 5 is the string 'CMYK'.
* column 6 is 'OK' if everything went fine, 'ERROR' if there
* was a problem.
fraction of pixels containing c, m, y and black ink! Вот что выдает это устройство! Хе-хе-хе.
Еще более интересно то, что исходник открыл одну тайну: там еще один девайс в этом же файле описан - ink_cov. И комментарий к нему: gave ink coverage values not ratecoverage.
И выдает он числа уже в процентах, если судить по коду. И считает по-другому:
for (y = 0; y < height; y++) {
byte *row, *end;
code = gdev_prn_get_bits(pdev, y, line, &row);
if (code < 0)
break;
end = row + raster;
for (; row < end; row += 4) {
dc_pix += row[0];
dm_pix += row[1];
dy_pix += row[2];
dk_pix += row[3];
++total_pix;
}
}
...
{
double c = -1., m = -1., y = -1., k = -1.;
if (code == 0) {
c = (dc_pix*100) / (total_pix*255);
m = (dm_pix*100) / (total_pix*255);
y = (dy_pix*100) / (total_pix*255);
k = (dk_pix*100) / (total_pix*255);
}
Раз на 100 умножает, то это в процентах.
Вывод на твою третью страницу:
gs -q -dNOPAUSE -dBATCH -dFirstPage=3 -dLastPage=3 \
-sDEVICE=ink_cov -o - 456.pdf
1.81716 1.58161 1.31144 0.10283 CMYK OK