简体   繁体   中英

Generating High Quality (or Readable) Thumbnails using Ghostscript

I'm currently attempting to generate thumbnails of PDFs using Ghostscript (or more specifically GhostscriptSharp , the C# wrapper version) and have run into some issues with the image quality that is being output.

Using the following method:

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

and changing the width and height to smaller numbers that will generate a thumbnail roughly the size that I am looking for, for example a height of 12 and width of 8 will generate a set of thumbnails with the size of 102 x 88 pixels.

Ideally - I am trying to generate thumbnails with a size of 100 x 80 that look reasonably well when rendered as HTML (in an image tag) so that the reader could get a decent idea of what they are looking at from a thumbnail (as it is currently completely unreadable)

These are the current settings (from the C# wrapper):

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"
};

However - I am not very familiar with Ghostsharp and its settings to strike a balance between size and quality. I wouldn't be opposed to creating larger images and scaling them for the thumbnails, although I would prefer to get the thumbnails to work if possible.

Without seeing the original documents I can't be sure, but it seems unlikely to me that 102x88 pixels is going to be sufficient to create readable text.

The TextAlphaBits is probably too large for this size, all you will get is a blur. Try not setting TextAlphaBits at all. NumRenderingThreads won't do anything useful with a page this small (though it won't do any harm either).

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM