#tiff #ghostscript #postscript
#tiff #ghostscript #postscript
Вопрос:
Когда я использую ghostsview для преобразования файла postscript в tiff, я использую формат 72, но если я хочу иметь тот же формат при использовании ghostscript, какое разрешение мне следует использовать? например
gswin32c.exe -q -dNOPAUSE -sDEVICE=tiffg4 -r????? -sOutputFile=a.tif a.ps
Похоже, что это
gswin32c.exe -q -dNOPAUSE -sDEVICE=tiffg4 -r600 -sOutputFile=a.tif a.ps
Но это не совсем правильно.
РЕДАКТИРОВАТЬ: Я имею в виду, что в ghostsview, который является версией ghostscript с графическим интерфейсом, я могу установить разрешение, скажем, для «tiffcrl», равным 72, 96, 204×196 и 204×98. Я хочу получить тот же результат, который я получаю при установке разрешения 72 в ghostview, что и при использовании Ghostsript gswin32c.exe
Каковы настройки по умолчанию в gsview, чтобы я мог перенести их непосредственно в приглашение командной строки, чтобы выходные результаты были одинаковыми?
ПРАВКА 2: Версия gsview равна 4.9, а установленная версия ghostscript равна 9.01, моя операционная система — Windows 7 32bit, у меня установлена только одна версия ghostscript.
Что я делаю, так это открываю Postscript-файл с помощью gsview, а затем нажимаю «Преобразовать» в разделе «Файл». После этого я выбираю tiffcrle устройства и разрешение 72. Все остальные параметры в любом месте используются по умолчанию (я с ними, так сказать, не возился). Файл, который я получаю при выполнении этого способа, имеет разрешение 4958×7017.
Когда я делаю это с помощью ghostscript
gswin32c.exe -q -dNOPAUSE -sDEVICE=tiffcrle -r72 -sOutputFile=a.tif a.ps
Я получаю файл намного меньшего размера (в кб) с разрешением 595×842, с совершенно дерьмовым разрешением.
Я также пробовал ту же команду, но с использованием -r600, которая выдает мне файл с тем же разрешением, что и созданный в gsview файл, но другого размера (в кб).
Когда я пытаюсь выполнить команду, которую вы мне предоставили @pipitas:
gswin32c.exe -o nul -sDEVICE=tiffcrle -c "currentpagedevice {exch ==only ( ) print == } forall" | findstr /i resolution
Я получаю результат
/.MarginsHWResolution [204.0 196.0]
/HWResolution [204.0 196.0]
Когда я пробовал это разрешение под -r204x196, оно все равно не выдаст тот же результат.
С наилучшими пожеланиями!
Комментарии:
1. @Joe: Вы хотите более высокое разрешение и лучшее качество. Это вы можете получить, но за это приходится платить: цена выплачивается за больший размер файла. Обычно вы не можете получить оба: более высокое разрешение / лучшее качество И меньший размер файла.
2. @Joe: чтобы проверить данные вашего вывода в формате TIFF, пожалуйста, выполните эту команду для каждого из ваших результатов:
identify -verbose file.tif
. Посмотрите на свои реальные размеры изображения и разрешения там. (identify является частью пакета приложений ImageMagick и доступна для всех основных платформ ОС.)3. @Joe: Вы говорите, что ваша команда GS выдает вам «маленький» файл с «разрешением 595×842» . Это какое-то недоразумение. Разрешение измеряется в точках на дюйм (dpi), и ваша команда явно запросила 72 dpi . 595×842 представляет собой размер выходной страницы, измеряемый в точках PostScript. То же самое для вашего результата 4958×7017 . Поскольку
72 points == 1 Inch
(по определению) при разрешении 72dpi размер 595×842 дает вам размер страницы 8,26 дюйма (= = 210 мм) на 11,69 дюйма (== 297 мм). При разрешении ~ 200 точек на дюйм размер 4958×7017 точек преобразуется в размер страницы 24,3 дюйма (= 617,2 мм) на 35,8 дюйма (= 909,3 мм).4. @pipitas: После установки Imagemagick и использования identify кажется, что разрешение составляет 600×600 для обоих изображений. Что отличается, находится под «серым»: среднее значение:, стандартное отклонение:, эксцесс:, асимметрия:. Файл, созданный с помощью gswin32c, имеет немного более высокие значения среднего значения, эксцесса и асимметрии, но немного меньше стандартного отклонения, я думаю, в этом разница? В любом случае, чтобы контролировать это при создании файла с помощью gswin32c?
5. @Joe: фрагменты информации, которые вы предоставляете, каким-то образом не сочетаются друг с другом. Без фактических файлов, которые вы используете, у меня нет возможности проанализировать, что происходит….
Ответ №1:
По умолчанию Ghostscript использует разрешение 72dpi для всех устройств вывода изображений (в пикселях). Но для pdfwrite
устройства вывода используется 720 точек на дюйм. Эти значения по умолчанию применяются, если в вашей командной строке не указано другое значение, такое как -r200
или -r204x196
.
Чтобы определить общий размер выходной страницы, вы можете использовать -gWWWxHHH
для указания ширины и высоты в пикселях.
Ghostview — это графическая оболочка вокруг Ghostscript, но созданная другим разработчиком / компанией. Ghostview использует Ghostscript внутренне в качестве своего интерпретатора и средства визуализации. Он позволяет устанавливать различные -rNNxMM
разрешения через его графический интерфейс.
В Windows есть две команды Ghostscript:
- gswin32c.exe : это выводит все в cmd.exe экран, а также принимает все входные данные оттуда (если вы находитесь в интерактивном режиме).
- gswin32.exe : открывается новое окно для
stdout
вывода (а также для ввода, если используется интерактивный режим)
Обе эти команды принимают параметры -rNNxMM
и -gWWWxHHH
. Чтобы полностью понять, как они работают, вам следует поиграть с различными вариантами
gswin32.exe -rNNNxMMM -gWWWxHHH c:/path/to/file.pdf
В любом случае, короткий ответ на ваш вопрос в заголовке таков: эквивалентом установки разрешения в Ghostview на 72 dpi для Ghostscript является: добавление -r72
к параметрам командной строки Ghostscript. (Но это значение в любом случае используется для вывода изображений в формате JPEG, PNG, TIFF и других …)
Обновить
Вы можете запросить все значения по умолчанию, которые Ghostscript использует для конкретного устройства вывода. Попробуйте это, например, для tiffg4
вывода, выполнив следующую команду:
gswin32c.exe ^
-o nul ^
-sDEVICE=tiffg4 ^
-c "currentpagedevice {exch ==only ( ) print == } forall"
Поскольку вас интересует разрешение, измените его следующим образом в Windows:
gswin32c.exe ^
-o nul ^
-sDEVICE=tiffg4 ^
-c "currentpagedevice {exch ==only ( ) print == } forall" | findstr /i resol
и вы должны увидеть этот вывод:
/.MarginsHWResolution [72.0 72.0]
/HWResolution [72.0 72.0]
Другое устройство, такое как pdfwrite
, выдаст другой результат, поскольку оно использует другие значения по умолчанию:
C:> gswin32c -o nul -sDEVICE=pdfwrite -c "currentpagedevice{exch print ==}forall"|findstr/i resolution
/.MarginsHWResolution [720.0 720.0]
/MonoImageResolution 300
/GrayImageResolution 72
/HWResolution [720.0 720.0]
/ColorImageResolution 72
Комментарии:
1. Спасибо за ответ, но, похоже, этого недостаточно. Программа сообщает мне, что она использует 204.0 196.0, но когда я использую это в -r204x196, я все еще не получаю тот результат, который я искал. Это действительно странно, и я понятия не имею, почему это так, можно ли как-нибудь отладить gsview, чтобы я мог видеть настройки, которые применяются при конвертации с помощью программного обеспечения?
2. @Joe: Как и КенС, я тоже не до конца понимаю, чего вы хотите достичь. Не могли бы вы обновить свой вопрос, пожалуйста? Опишите каждый шаг, который вы используете при преобразовании вашего файла с помощью Ghostview. Затем мы можем сказать вам, какую команду использовать с Ghostscript для достижения точно такого же результата. Также, пожалуйста, скажите: Какую версию Ghostscript вы используете? — Установлены ли у вас разные версии Ghostscript? — В какой операционной системе вы работаете? — Какую версию Ghostview вы используете?
3. Я отредактировал свой текст и записал, как я создаю файлы с помощью gsview и каких версий. 🙂
Ответ №2:
Переключатели Ghostscript задокументированы в / gs / doc, с которого вы могли бы начать Use.html.
Разрешение устанавливается с помощью переключателя -r, если вам нужно разрешение 72 dpi, вы бы установили -r72 Для меня не очевидно, что вы подразумеваете под «использовать формат 72», это не формат (или мне так не кажется). Но ваша команда l;ine создает впечатление, что вы хотите получить разрешение.
Комментарии:
1. Я имею в виду, что в ghostsview, который является версией ghostscript с графическим интерфейсом, я могу установить разрешение, скажем, для «tiffcrl», равным 72, 96, 204×196 и 204×98. Я хочу получить тот же результат, который я получаю при установке разрешения 72 в ghostview, что и при использовании Ghostsript gswin32c.exe.
2. Ghostview не является версией Ghostscript с графическим интерфейсом, это отдельное приложение от Ghostgum Pty, которое использует Ghostscript. В Windows «версией GUI» Ghostscript является gswin32, в то время как версией командной строки является gswin32c. Если вы хотите разрешение 72 dpi, тогда установите -r72 в командной строке GS.
3. Хорошо, я понимаю, но установка разрешения на -r72 по какой-то причине не помогает… существуют ли какие-либо другие переключатели параметров, которые необходимо установить? требуемое мной разрешение равно 4958×7017
4. @Joe: Спасибо, под 4958×7017 ты подразумеваешь размеры страницы в пунктах. Вы можете указать это, добавив
-g4958x7017
.
Ответ №3:
Увидев, как вы действовали с помощью Ghostview для создания выходных данных TIFF из входного PS-файла, я теперь полностью убежден, что следующая команда Ghostscript достигнет точно такого же результата:
gswin32c.exe ^
-o output.tif ^
-sDEVICE=tiffcrle ^
-r72x72 ^
-g595x842 ^
input.ps
(Это предполагает, что вы оставили настройку по умолчанию в Ghostsview на «Фиксированный размер страницы».