svglib缩放相关疑问:缩放参数对应的具体计量单位是什么
svglib scale功能及参数说明
scale(sx, sy)是svglib输出的ReportLab绘图对象自带的缩放方法,参数sx、sy为无单位的纯比例系数,分别对应横向、纵向的缩放倍率,你示例中赋值为10的参数就是指将原始SVG的所有图形属性放大10倍,本身没有对应像素、英寸这类物理/显示单位。- 实际输出的单位逻辑:svglib调用
svg2rlg解析SVG文件时,会先把SVG内定义的所有单位(包括px、cm、in等)统一转换为ReportLab的默认基础单位pt(点,1pt = 1/72英寸),缩放操作是在这个单位转换完成后执行的比例运算,因此缩放后的最终尺寸单位仍然为pt。 - 你提供的示例代码中先手动重设绘图宽高再调用scale的写法,是为了避免缩放后图形超出画布边界,属于适配缩放场景的常规正确写法。
drawing = svg2rlg(StringIO(textwrap.dedent(''' {}'''.format(xml_svg)))) # scale 适配逻辑 sx = sy = 10 drawing.width, drawing.height = drawing.minWidth() * sx, drawing.height * sy drawing.scale(sx, sy)
内容的提问来源于stack exchange,提问作者lookers
相关产品推荐
相关产品推荐

