pdf图像的重影脚本下采样,下采样因子错误
我发出以下命令:pdf图像的重影脚本下采样,下采样因子错误,pdf,ghostscript,downsampling,Pdf,Ghostscript,Downsampling,我发出以下命令: gs \ -o downsampled.pdf \ -sDEVICE=pdfwrite \ -dDownsampleColorImages=true \ -dColorImageResolution=180 \ -dColorImageDownsampleThreshold=1.0 \ 并获取以下错误: Subsample filter does not support non-integer downsample factor (1.994360) Failed to in
gs \
-o downsampled.pdf \
-sDEVICE=pdfwrite \
-dDownsampleColorImages=true \
-dColorImageResolution=180 \
-dColorImageDownsampleThreshold=1.0 \
并获取以下错误:
Subsample filter does not support non-integer downsample factor (1.994360)
Failed to initialise downsample filter, downsampling aborted
(在某些页面上)
以及:
最初,我尝试将采样降低到150dpi,这给出了因子(2.40??)的错误,这意味着多个错误,其中最后几个数字对于不同的页面是不同的。所以我猜图像大约是150*2.4=360 dpi。所以我试着降低采样到180。但是看起来所有的图像都有点不对劲
不,无法指定系数(这是Adobe针对蒸馏器参数的规范,我们目前仅限于此)。如果不修改源代码,也不能为舍入指定近似值 您可以使用不同的下采样算法 [很久以后] 事实上,我刚刚检查了当前代码,您一定在使用旧版本的Ghostscript 当前默认的下采样过滤器是双三次过滤器,如果强制使用子采样过滤器,则代码将检查请求的下采样因子是否为整数 如果因子不是整数,但在整数的0.1范围内,则强制因子为最接近的整数 如果它超出整数因子的0.1,则它中止子样本过滤器并切换到双三次 我建议升级 [稍后编辑] 因此,为了避免伪彩色下采样,问题实际上根本不是彩色图像,也不是它的单色图像,或者更准确地说,是图像遮罩 我设置了以下命令行:
gs
-sDEVICE=pdfwrite \
-sOutputFile=pdfwrite.pdf \
-dDownsampleColorImages=true \
-dDownsampleGrayImages=true \
-dDownsampleMonoImages=true \
-dColorImageDownsampleThreshold=1 \
-dGrayImageDownsampleThreshold=1 \
-dMonoImageDownsampleThreshold=1 \
-dColorImageDownsampleType=/Bicubic \
-dGrayImageDownsampleType=/Bicubic \
-dMonoImageDownsampleType=/Bicubic \
-dColorImageResolution=72 \
-dGrayImageResolution=72 \
-dMonoImageResolution=100 "gs sample.pdf"
这就产生了一个错误信息,单色图像唯一可用的过滤器是子样本,然后是关于不精确因子的错误信息
我想这基本上说明了我的观点,一个示例文件对于调查问题非常重要
所以这里有一个问题,我将研究它,显然对于单色图像,它应该被钳制到最接近的整数分辨率,因为没有其他的滤波器是可能的。然而,灰色和彩色图像确实可以按预期工作
正如我在早期评论中所建议的那样,报告一个bug可能会更快地到达这一点。我仍然建议你这样做,这样就不会忽视这一点
您可能会感兴趣地注意到,对我来说,当我不对单色图像进行下采样,但对其他图像进行下采样时,根据上面的命令行,生成的文件是785KB,原始文件是2.5MB。我刚从9.19升级到ghostscript的9.20,但仍然会出现错误。我在这里尝试过,显然没有使用你的文件,因为你还没有发布一个,而且它对我有效。所以要么你的文件有什么有趣的地方,要么你的Ghostscript版本。你是从哪里弄来的?我们知道,包维护人员有时会修改源代码,这可能是一个问题。我建议您要么从源代码构建自己,要么报告一个bug,因为代码不是要这样工作的。如果报告错误,请不要忘记包含文件和命令行以重现问题。实际上,即使指定-dColorDownsampleOption=/bicubict,也会出现相同的错误没有名为“ColorDownsampleOption”的开关。您使用的Ghostscript版本是什么?你从哪里弄来的?一个软件包,你自己制作的源代码,还有别的吗?由于您没有提供您自己的文件,我显然无法检查您是否没有回答我上次评论中的这些问题,因此除了重复我所说的内容之外,我无法补充任何内容;我自己也在当前代码上尝试过,它的工作原理与预期一致。我认为我拥有的gs来自OS X。这是我从gs-v:GPL Ghostscript 9.20(2016-09-26)获得的版权(C)2016 Artifex Software,Inc.保留所有权利。以下是发生此错误的文件:我使用的命令是:
gs
-sDEVICE=pdfwrite \
-sOutputFile=pdfwrite.pdf \
-dDownsampleColorImages=true \
-dDownsampleGrayImages=true \
-dDownsampleMonoImages=true \
-dColorImageDownsampleThreshold=1 \
-dGrayImageDownsampleThreshold=1 \
-dMonoImageDownsampleThreshold=1 \
-dColorImageDownsampleType=/Bicubic \
-dGrayImageDownsampleType=/Bicubic \
-dMonoImageDownsampleType=/Bicubic \
-dColorImageResolution=72 \
-dGrayImageResolution=72 \
-dMonoImageResolution=100 "gs sample.pdf"