目前我正在使用此命令生成SVG:
gs -sDEVICE=svg -dNOCACHE -sOutputFile="photo.svg" -q -dbatch -dNOPAUSE "photo.pdf.out" -c quit
我想将图像的大小加倍。使用GS的-r
和-g
选项只会给我相同的图像。我不确定在SVG设备的GS中是否支持这些选项。
我尝试使用ImageMagick的convert
来绕过ghostscript但是当我在浏览器中查看图像时,它会将SVG显示为代码。
原始图片是裁剪的PDF。我尝试直接缩放,但没有得到高质量的图像,可能是由于我在ImageMagick中没有标记的选项。
答案 0 :(得分:2)
我无法帮助你处理你的Ghostscript查询(它看起来像-r和-g只能在渲染为位图时应用),但我可以给你一个关于如何使用SVG输出的提示。
选项1
您可以使用CSS扩展SVG。例如:style="transform: scale(4);"
。但这可能不适用于所有浏览器。
选项2
您可以调整SVG标题,使其在渲染时显示更大。为此,您需要向SVG添加viewBox
属性。由于SVG的尺寸以点(“pt”)表示,因此这一步很复杂。而viewBox尺寸以CSS像素表示。一点是1/72英寸。而CSS像素是1/96英寸。
无论如何,viewBox属性描述了SVG内容的边界,格式为"<minX> <minY> <width> <height>"
。
minX和minY可能都是0。对于宽度和高度,我们需要将指定的宽度和高度从<svg>
转换为默认坐标空间。
在您的示例中,宽度为“5pt”。转换为CSS像素,这是5 * 96/72 = 6.6666。
高度为“13pt”,转换为(13 * 96/72)= 17.3333。
因此我们的viewBox变为"0 0 6.6666 17.3333"
<svg xmlns='http://www.w3.org/2000/svg' version='1.1'
width='5pt' height='13pt' viewBox="0 0 6.6666 17.3333">
<ellipse cx="2.5pt" cy="6.5pt" rx="2.5pt" ry="6.5pt" fill="green" />
</svg>
但是这不会渲染得更大,因为viewBox的大小与旧的宽度和高度相同。要使其渲染得更大,您现在可以增加宽度和高度属性。
例如,为了使它大四倍,宽度和高度翻两番,如下所示:
<svg xmlns='http://www.w3.org/2000/svg' version='1.1'
width='20pt' height='52pt' viewBox="0 0 6.6666 17.3333">
<ellipse cx="2.5pt" cy="6.5pt" rx="2.5pt" ry="6.5pt" fill="green" />
</svg>
如果要填充浏览器窗口,请将宽度和高度设置为100%
。或者删除它们,这是相同的,因为它们默认为。
希望这有帮助。