LINUX.ORG.RU

История изменений

Исправление 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