使用Ghostscript生成高质量(或可读)缩略图

时间:2012-05-14 13:48:49

标签: c# .net ghostscript thumbnails

我目前正在尝试使用Ghostscript(或更具体地说是GhostscriptSharp,C#包装器版本)生成PDF的缩略图,并且遇到了正在输出的图像质量的一些问题。

使用以下方法:

GeneratePageThumbs(string inputPath, string outputPath, int firstPage, int lastPage, int width, int height)

并将宽度和高度更改为较小的数字,这将生成大致与我要查找的大小的缩略图,例如,高度为12,宽度为8将生成一组尺寸为102 x 88像素的缩略图

理想情况下 - 我正在尝试生成尺寸为100 x 80的缩略图,当呈现为HTML(在图像标记中)时看起来相当不错,这样读者可以从缩略图中获得他们正在看的内容(因为它目前完全不可读)

这些是当前设置(来自C#包装器):

private static readonly string[] ARGS = new string[] {
     // Keep gs from writing information to standard output
     "-q",                     
     "-dQUIET",

     "-dPARANOIDSAFER",         // Run this command in safe mode
     "-dBATCH",                 // Keep gs from going into interactive mode
     "-dNOPAUSE",               // Do not prompt and pause for each page
     "-dNOPROMPT",              // Disable prompts for user interaction           
     "-dMaxBitmap=500000000",   // Set high for better performance
     "-dNumRenderingThreads=4", // Multi-core, come-on!

     // Configure the output anti-aliasing, resolution, etc
     "-dAlignToPixels=0",
     "-dGridFitTT=0",
     "-dTextAlphaBits=4",
     "-dGraphicsAlphaBits=4"
};

但是 - 我不太熟悉Ghostsharp及其设置以在尺寸和质量之间取得平衡。我不反对为缩略图创建更大的图像并缩放它们,尽管我希望尽可能让缩略图工作。

1 个答案:

答案 0 :(得分:3)

没有看到原始文档,我无法确定,但似乎不太可能102x88像素足以创建可读文本。

对于这个大小,TextAlphaBits可能太大了,你将得到的只是模糊。尽量不要设置TextAlphaBits。 NumRenderingThreads不会对这么小的页面做任何有用的事情(尽管它也不会造成任何伤害)。