2024-04-20 12:09:12 发布
网友
我正在使用svgwrite和python从位图中生成一个图像,其中每一行都由θ围绕一个共同的原点旋转成扇形图案。目前,这张图片在128行上运行了大约10MB,这主要是因为79000多个线段(每个像素一个线段)中保留了过多的浮点。在
我想通过从原点到终点绘制一条直线,然后在SVG行上拉伸一行“image”,从而显著减小图像大小。使用SVG是否可以做到这一点?除此之外,我愿意接受任何可能大幅降低尺寸的建议,因此我稍后可以将线条动画化。在
这个解决方案怎么样(见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
image
transform()
对于一个16.4KB的128x128 PNG图标,我得到的SVG文件是128.1KB。其中大部分是base64编码的图像数据(128个PNG条带的总大小已经是85.1KB)。通过对一些浮点数进行舍入,可以进一步减少一点,但我认为不会有太多收获。在
可能还有另一种方法,将图像作为一个整体嵌入,并反复引用同一图像的另一个剪辑部分,但我无法实现这一点。在
这个解决方案怎么样(见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
image
strip元素上的transform()
属性将它们旋转到所需的程度。在对于一个16.4KB的128x128 PNG图标,我得到的SVG文件是128.1KB。其中大部分是base64编码的图像数据(128个PNG条带的总大小已经是85.1KB)。通过对一些浮点数进行舍入,可以进一步减少一点,但我认为不会有太多收获。在
可能还有另一种方法,将图像作为一个整体嵌入,并反复引用同一图像的另一个剪辑部分,但我无法实现这一点。在
相关问题 更多 >
编程相关推荐