在 ghostscript 中旋转 jpeg 图像

Posted

技术标签:

【中文标题】在 ghostscript 中旋转 jpeg 图像【英文标题】:Rotate jpeg images in ghostscript 【发布时间】:2020-09-11 10:07:28 【问题描述】:

我正在使用 ghostscript 将 .ps 文件转换为 .jpeg 文件。但是输出文件应该旋转 180 度。

我正在使用下面的命令来旋转。

gswin64c.exe -sDEVICE=jpeg -dBATCH -dNOPAUSE -dSAFER -r300x300 -sOutputFile=E:\temp\test.jpg -dEPSCrop -c "> setpagedevice" "E:\temp\myFile .ps.

它给出以下错误:

GPL Ghostscript 9.10 (2013-08-30) 版权所有 (C) 2013 Artifex Software, Inc. 保留所有权利。 此软件不提供任何担保:有关详细信息,请参阅文件 PUBLIC。 错误:/未定义在 E:\temp\myFile.ps 操作数栈:

执行堆栈: %interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-

2 %stopped_push --nostringval-- --nostringval-- --nostringval-- fa lse 1 %stopped_push .runexec2 --nostringval-- --nostringval-- --nost ringval-- 2 %stopped_push --nostringval-- 字典栈: --dict:1182/1684(ro)(G)-- --dict:0/20(G)-- --dict:77/200(L)-- 当前分配模式是本地的 最后一个操作系统错误:没有这样的文件或目录 GPL Ghostscript 9.10:不可恢复的错误,退出代码 1

PS:- E:\temp\myFile.ps 位置和文件存在于我的系统中。

【问题讨论】:

【参考方案1】:

您已经使用 -c 开关启动了任意 PostScript。从那时起,直到下一次切换的所有内容都被视为 PostScript。

您的命令行在结束 " 和输入文件名之间不包含任何 '-',因此输入文件名被视为 PostScript 程序的一部分。由于没有 PostScript 标记 'E;\temp\myFile.ps ' 解释器给你一个未定义的错误。

尝试在“...setpagedevice”之后放置-f(-f 表示将下一个内容视为文件名)。

也就是说,我怀疑这是否会达到您想要的效果,这取决于输入文件中的内容。您已经使用了-dEPSCrop,但文件名具有 .ps 扩展名。除非文件真的是 EPS,否则 EPSCrop 不会有任何效果。如果它是 EPS,则媒体大小将是 EPS BoundingBox 的尺寸,并且(我相信)方向将被忽略。如果输入文件不是 EPS,则 EPSCrop 将被忽略。

您使用的是非常旧的 Ghostscript 版本(7 岁),您应该更新一下。

【讨论】:

以上是关于在 ghostscript 中旋转 jpeg 图像的主要内容,如果未能解决你的问题,请参考以下文章

在 Windows 上使用 Ghostscript 从 PDF 进行分页 JPEG 转换/导出

Ghostscript -- 将 PS 转换为 PNG、旋转和缩放

转换ghostscript光栅化器时如何为Jpeg设置dpi

具有原始文件名的 GhostScript 输出文件

如何根据方向元数据旋转 JPEG 图像?

ghostscript 没有创建精确的图像