Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File 是否有一个好的粗略公式来估算svg文件大小?_File_Svg_Graphics - Fatal编程技术网

File 是否有一个好的粗略公式来估算svg文件大小?

File 是否有一个好的粗略公式来估算svg文件大小?,file,svg,graphics,File,Svg,Graphics,根据svg包含的形状的数量和类型,是否有一个很好的粗略公式来估计svg文件的大小?例如,假设您有一个包含10个圆和20条路径的svg。你能估计出一个圆一般会增加2-3kb的大小,而每条路径会增加1-2kb的大小吗?因此,基本上,如果你必须快速地做一些肮脏的数学运算,你可以说,对于10个圆圈和20条路径,我估计文件大小为: [10*2kb]+[1*20kb]=40kb 通常,复杂的几何图形将存储为贝塞尔路径,在SVG中以M123.0456.0、C456.0798.0222、0333.0444.05

根据svg包含的形状的数量和类型,是否有一个很好的粗略公式来估计svg文件的大小?例如,假设您有一个包含10个圆和20条路径的svg。你能估计出一个圆一般会增加2-3kb的大小,而每条路径会增加1-2kb的大小吗?因此,基本上,如果你必须快速地做一些肮脏的数学运算,你可以说,对于10个圆圈和20条路径,我估计文件大小为:

[10*2kb]+[1*20kb]=40kb


通常,复杂的几何图形将存储为贝塞尔路径,在SVG中以M123.0456.0、C456.0798.0222、0333.0444.0555.0的形式表示

这将占数据的大部分。它是6个实数,每个实数可能是6位,但检查每个路径段的精度。因此,我将每个路径段设置为40字节左右,然后添加一点路径开销,然后再添加一点样式数据


这应该给你一个大概的答案。

不,它不是那样工作的。例如,路径可以非常短,也可以非常大。如果你解释了你的用例,也许有人能给你一些提示。我想解释一下在现有svg中添加一个包含10个圆圈和20条路径的对象图的影响或缺乏影响。如果我简单地向一个空svg添加10个基本圆和20个基本路径,那么总文件大小只有2kb,因此在这种情况下对文件加载时间的影响最小。在什么情况下,路径需要很大?此外,文件大小和加载时间对于我所描述的场景来说是小的,但是还有其他的因素我应该考虑吗?例如,您如何考虑/估计对渲染时间/质量的影响?以svg为例,它包含美国和50条路径的状态轮廓,这50条路径只是矩形。马尔科姆·麦克莱恩(Malcolm Mclean)提到路径段是一种计算哪些路径段有用的方法。加载时间将受到文件大小和DOM交互的影响。对于渲染,也可能考虑填充量。但是还有很多其他的东西,应用了什么转换,有多少点,多少填充,多少dom元素等等。所以我不认为你能得到一个简单的答案,除了更多的dom节点,渲染速度越慢,填充速度越慢,加载更大的文件速度越慢。