imageMagick PDF 到 PNG:提高条形码可读性

imageMagick PDF to PNG: Increasing barcode readability

我是 imageMagick 的新手,我正在使用它将 PDF 运输标签转换为 PNG,但我失去了条形码的分辨率。如何提高可读性?

这是我使用的 imageMagick 命令的片段:

img.Resize(new MagickGeometry(800,0));
img.Threshold((Percentage) 60);
img.Write(outputPng);

结果如下:

这是我转换的实际PDF的截图

更新 这是修改后的代码片段,可以让我获得接近 1 比 1 的分辨率:

var settings = new MagickReadSettings {Density = new Density(200)};

using (var images = new MagickImageCollection())
{
    images.Read(inputPdf, settings);
    using (var img = images.AppendVertically())
    {
        img.Density = new Density(150);
        img.Trim();
        img.Quality = 72;
        img.Sharpen(0, 1.0);
        img.ColorType = ColorType.Bilevel;
        img.Depth = 1;
        img.Alpha(AlphaOption.Off);
        img.Write(outputPng);
    }
}

我有点生疏,但调整大小作为最后一个操作通常是个好主意,除非你确定尺寸是虚拟的并且只用于输出渲染。

另外,我的猜测是,这与PDF加载有关,而不是与PDF编写有关。要确认这一点,请将屏幕截图另存为 bmp/gif/jpg 并尝试相同的转换。

此外,请记住库首先是一个命令行工具,因此原始库的文档是主要来源。这是我发现的一件事:

这说明矢量对象对于 PDF 很重要,您需要在其中输入 density 光栅化像素密度的配置值。