Imagemagick 如何定义svg sprite的宽度/高度并将这些值写入文件(使用Linux或Mac CLI)

Imagemagick 如何定义svg sprite的宽度/高度并将这些值写入文件(使用Linux或Mac CLI),imagemagick,command-line-interface,identify,svg-sprite,imagemagick-identify,Imagemagick,Command Line Interface,Identify,Svg Sprite,Imagemagick Identify,我正在尝试使用npm包svg sprite创建svg sprite。最终我得到了雪碧,看起来是这样的: //icons-test.svg ... 我怀疑嵌套的svg标记混淆了ImageMagick的内部svg解码器。尝试将SVG转换为MVG。它应该抛弃嵌套的SVG结构 $ convert icons-test.svg mvg:- 将打印以下MVG说明 push graphic-context viewbox 0 0 108 54 affine 1 0 0 1 0 0 push graphic

我正在尝试使用npm包svg sprite创建svg sprite。最终我得到了雪碧,看起来是这样的:

//icons-test.svg
...

我怀疑嵌套的
svg
标记混淆了ImageMagick的内部svg解码器。尝试将SVG转换为MVG。它应该抛弃嵌套的SVG结构

$ convert icons-test.svg mvg:-
将打印以下MVG说明

push graphic-context
viewbox 0 0 108 54
affine 1 0 0 1 0 0
push graphic-context
viewbox 0 0 54 54
affine 1 0 0 1 2 2
push graphic-context
path ''
pop graphic-context
pop graphic-context
push graphic-context
viewbox 0 0 54 54
affine 1 0 0 1 2 2
push graphic-context
path ''
pop graphic-context
pop graphic-context
pop graphic-context
嵌套的
viewbox
s与堆栈上的
graphic context
s隔离后,您应该能够正确识别

$ convert icons-test.svg mvg:- | identify -format '%w' mvg:-
#=> 108

谢谢,它很有效。不知何故:)我的意思是,它正确地返回了svg精灵的宽度和高度,但在某些svg精灵上它也返回了一些错误:
identify:non-configurant-drawing-primitive-definition
64'@error/draw.c/RenderMVGContent/4361。`可能是因为mvg不了解一些svg的内部结构?(我对mvg不太熟悉)。那么您如何看待将svg转换为光栅以定义大小
convert icons-test.png&&identify-格式“%w”icons-test.png&&rm icons-test.png
它也会返回正确的大小(并且不会返回错误),但这不是一个好的做法吗?不管怎样,谢谢你,我会像做决定一样检查的。