我使用svgwrite和python从位图在SVG中形成图像,其中每条线围绕一个公共原点旋转θ,形成扇形图案。目前这个图像在128行中大约10 MB运行,主要是因为79000+线段中保留了过多的浮点(每个像素一个线段)。
我希望通过从原点到终点绘制一条线来显着降低图像尺寸,然后拉伸一条线'图像'在那个SVG线上。这是否可以使用SVG?除此之外,我可以接受任何可能显着缩小尺寸的建议,因此我稍后可以为这些线设置动画。
答案 0 :(得分:1)
此解决方案如何(请参阅 fiddle ):
convert image.png -crop 1x128 +repage +adjoin strip-%d.png
for i in strip-*.png; do echo "data:image/png;base64,$(openssl base64 < $i | tr -d '\n')"; done > data-uris.txt
transform()
条带元素上的image
属性将其旋转到所需的度数。对于16.4KB的128x128 PNG图标,我最终获得了128.1KB的SVG文件。其中大部分是base64编码的图像数据(128个PNG条带的总大小已经是85.1KB)。通过对一些花车进行四舍五入可以进一步减少,但我不认为可以获得很多东西。
可能有另一种方法可能会将图像作为一个整体嵌入,并反复引用同一图像的另一个剪切部分,但我无法使其工作。