首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ghostscript.NET图像文本质量问题

Ghostscript.NET图像文本质量问题
EN

Stack Overflow用户
提问于 2014-08-22 08:22:27
回答 2查看 5.6K关注 0票数 4

我正在尝试转换一个pdf文件到图像使用幽灵脚本。所需的dpi设置为72 of,这应该足够高,以便文本显示清楚,但大多数文本是难以辨认的。

我可以提高dpi,但这将导致非常大的图像文件,我希望没有。

我知道有一些关于幽灵脚本添加反混叠等的争论(例如-dDOINTERPOLATE)。如何将它们添加到下面的代码中,或者是否有更好的方法来做到这一点?

代码语言:javascript
复制
        int desired_x_dpi = 72;
        int desired_y_dpi = 72;

        GhostscriptRasterizer _rasterizer = new GhostscriptRasterizer();

        _rasterizer.Open(inputPdfPath, localDllInfo, false);

        for (int pageNumber = 1; pageNumber <= _rasterizer.PageCount; pageNumber++)
        {
            string pageFilePath = Path.Combine(outputPath, "Page-" + pageNumber.ToString() + ".png");

            Image img = _rasterizer.GetPage(desired_x_dpi, desired_y_dpi, pageNumber);
            img.Save(pageFilePath, ImageFormat.Png);
        }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-22 08:53:33

GhostscriptRasterizer 1.1.9中,默认情况下设置了-dDOINTERPOLATE。您可以通过GhostscriptRasterizer类控制的唯一参数是TextAlphaBitsGraphicsAlphaBits

如果您想要更多地控制参数,我建议您尝试使用Ghostscript.NET中的其他类。

看看下面的例子:Image devices usage samples

您可以这样添加自定义参数(开关):

代码语言:javascript
复制
GhostscriptPngDevice dev = new GhostscriptPngDevice(GhostscriptPngDeviceType.Png16m);
dev.GraphicsAlphaBits = GhostscriptImageDeviceAlphaBits.V_4;
dev.TextAlphaBits = GhostscriptImageDeviceAlphaBits.V_4;
dev.ResolutionXY = new GhostscriptImageDeviceResolution(96, 96);
dev.InputFiles.Add(@"E:\gss_test\indispensable.pdf");
dev.Pdf.FirstPage = 2;
dev.Pdf.LastPage = 4;
dev.CustomSwitches.Add("-dDOINTERPOLATE"); // custom parameter
dev.OutputPath = @"E:\gss_test\output\indispensable_color_page_%03d.png";
dev.Process();

当我占用一些时间时,我将扩展GhostscriptRasterizer以接受Ghostscript.NET v.1.2.0发行版的开放方法中的自定义参数。

票数 5
EN

Stack Overflow用户

发布于 2018-10-05 12:27:58

也有同样的问题。通过向CustomSwitches添加分辨率的GhostscriptRasterizer来修正

代码语言:javascript
复制
using (var rasterizer = new GhostscriptRasterizer())
{
    rasterizer.CustomSwitches.Add("-r500x500");
    ...other code here
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25442607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档