我发出以下命令:
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(在一些页上)
以及:
Subsample filter does not support non-integer downsample factor (2.000029)
Failed to initialise downsample filter, downsampling aborted最初,我尝试将样本降到150 for,这给出了因子(2.40?)的错误,这意味着多个错误,其中最后几个数字对于不同的页面是不同的。所以我猜图像大约是150*2.4 = 360 dpi。所以我试着把采样降到180。但这些图像似乎都有点不对劲吗?
发布于 2016-10-09 16:46:03
没有,没有办法指定的因素(这是Adobe规范的蒸馏器旁,我们目前仅限于这些)。如果不修改源代码,也不能指定舍入的近似值。
您可以使用不同的下采样算法。
很久以后
实际上,我刚刚检查了当前的代码,您必须使用Ghostscript的旧版本。
当前默认的下采样过滤器是Bicubic过滤器,如果强制使用子样本筛选器,则代码将检查所请求的下采样因子是否为整数。
如果因子不是整数,而是在整数的0.1以内,则强制因子为最接近的整数。
如果它的外部为整数因子的0.1,那么它中止子样本过滤器并切换到Bicubic。
我建议升级。
后期编辑
因此,避免伪造的ColorDownsampleOption,问题实际上不是彩色图像,它的单色图像,或者更准确地说,在你的情况下,图像。
我设置了以下命令行:
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可能会更快地达到这一点。我仍然建议你这样做,这样就不会忽视这一点。
您可能会感兴趣地注意到,对于我来说,当我不对单色图像进行降采样,但按照上面的命令行对其他图像进行降采样时,生成的文件是785 is,原来的值是2.5MB。
https://stackoverflow.com/questions/39937028
复制相似问题