【问题标题】:Ghostscript: How can I move/scale eps content on target image?Ghostscript:如何在目标图像上移动/缩放 eps 内容?
【发布时间】:2015-01-23 17:53:36
【问题描述】:

我想用 ghostscript 从 eps 文件创建一个 png 文件。但我想把它放在更大的图像上,并准确控制在哪里和有多大(这意味着,我想缩放和移动它)。 我认为,应该在 ghostscript 的“-c”参数中添加一些 postscript 命令。 我尝试了像 -c " 0.8 0.8 scale " 和 -c " 1 1 moveto " 这样的参数。 但在这种情况下,没有创建 png 文件,也没有其他错误消息。 我的问题:这样做的正确方法是什么?

我使用的示例命令:

gswin32c.exe -dPARANOIDSAFER -r288 -dDEVICEHEIGHTPOINTS=195 -dDEVICEWIDTHPOINTS=256 -c " 1 1 moveto " -sDEVICE=png16m -o "testout.png" "input.EPS"

【问题讨论】:

    标签: transformation ghostscript postscript


    【解决方案1】:

    您需要阅读Adobe EPSF specification

    尤其是第 2.6 节“图形状态”。您将需要按照您的建议使用比例,然后移动到。请注意, 1 1 moveto 将当前点移动 1/72 英寸,因此您可能看不到任何差异。尽管您使用了 -c 开关来引入 PostScript,但您并没有使用 -f 来恢复命令行处理。

    试试:

    gswin32c.exe -sDEVICE=png16m -r288 -dDEVICEHEIGHTPOINTS=195 -dDEVICEWIDTHPOINTS=256 -sOutputFile="testout.png" -c "72 72 moveto" -f "input.EPS"
    

    这应该将渲染图像向上和向右移动一英寸,您应该能够看到。使用 -sOutputFile 而不是 -o 以防万一你在标准输出上得到一些东西。 -o 意味着 -dBATCH 和 -dNOPAUSE。

    【讨论】:

    • 非常感谢,它似乎可以这样工作。一个补充:“moveto”似乎没有帮助,但“translate”有帮助。 “规模”也有效。
    • 是的,我没有想清楚,您需要平移以移动原点,以便 0,0 是您希望 EPS 左下角的位置。您还应该考虑标题 cmets 中的 BoundingBox。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-19
    • 2014-01-28
    相关资源
    最近更新 更多