Как улучшить качество изображений JPEG, которые генерируются из PDF-файлов с помощью Ghostscript? - PullRequest
3 голосов
/ 23 февраля 2011

Я использую этот код для создания изображений JPEG из файла PDF:

String cmd = @"./lib/gswin32c";
String args = "-dNOPAUSE -sDEVICE=jpeg -dJPEGQ=100 -dBATCH -dSAFER -sOutputFile=" + fileName + "-%03d.jpg " + fileName + ".pdf";
Process proc = new Process();
proc.StartInfo.FileName = cmd;
proc.StartInfo.Arguments = args;
proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.UseShellExecute = false;
proc.Start();

Я работаю очень хорошо, но качество действительно плохое. Кажется, размыто. Любые советы, как улучшить качество?

EDIT

Теперь я использую следующие аргументы, и они работают как положено:

String args = "-dNOPAUSE -sDEVICE=pngalpha -r300 -dBATCH -dSAFER -sOutputFile=" + fileName + "-%03d" + FILEEXTENSION + " " + fileName + ".pdf";

Ответы [ 3 ]

3 голосов
/ 23 февраля 2011

JPEG? Для документов ? Генерация GIF-файлов или PNG, если вы можете. JPEG-файлы не подходят ни для чего другого, кроме фотографий, даже с настройкой «максимального» качества.

http://lbrandy.com/blog/2008/10/my-first-and-last-webcomic/

1 голос
/ 23 февраля 2011

Я быстро просмотрел документ , и кажется, что есть некоторые параметры, влияющие на качество изображения, такие как -dCOLORSCREEN и -dDOINTERPOLATE. Попробуйте их! :)

0 голосов
/ 02 мая 2015

Я только что боролся с качеством pdf в jpeg и изменил по совету dk-logic на gif.

Это может кому-то помочь, потому что теперь у меня почти идеальное качество с помощью следующей команды

gs -sDEVICE=png16m -r600 -dDownScaleFactor=3 -o outfile.png inFile.pdf

По документам

-dDownScaleFactor = целое число

Это приводит к уменьшению внутреннего рендеринга с учетом (маленькое целое число) перед выводом. Например, вышеприведенный будет выдавать выходной png 200 точек на дюйм из Внутренний рендеринг 600 точек на дюйм:

...