Help us shape the future of Go! Take the 2026 Go Developer Survey

canvasconv

package
v0.1.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 21, 2026 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Overview

Package canvasconv 提供 internal/render/geom 的中性几何类型与 tdewolff/canvas 类型之间的转换,供 canvas 后端(把 geom 绘制指令转成 canvas.Canvas 用于 Page()/PDF/SVG 矢量输出)以及迁移期的适配层使用。

它把对 canvas 的依赖集中在这一个小包里:geom 本身保持零绘制库依赖, 其余后端(gg/ftgg/tinyskia)只依赖 geom,不依赖本包。

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func FromCanvasCapper

func FromCanvasCapper(c canvas.Capper) geom.Capper

FromCanvasCapper 把 canvas 线帽转为 geom 线帽。

func FromCanvasFillRule

func FromCanvasFillRule(rule canvas.FillRule) geom.FillRule

FromCanvasFillRule 把 canvas.FillRule 转为 geom.FillRule。

func FromCanvasGradient

func FromCanvasGradient(g canvas.Gradient) geom.Gradient

FromCanvasGradient 把 canvas.Gradient 包装为 geom.Gradient。

func FromCanvasJoiner

func FromCanvasJoiner(j canvas.Joiner) geom.Joiner

FromCanvasJoiner 把 canvas 连接器转为 geom 连接器。

func FromCanvasMatrix

func FromCanvasMatrix(m canvas.Matrix) geom.Matrix

FromCanvasMatrix 把 canvas.Matrix 转为 geom.Matrix(两者布局一致)。

func FromCanvasPaint

func FromCanvasPaint(p canvas.Paint) geom.Paint

FromCanvasPaint 把 canvas.Paint 转为 geom.Paint。

func FromCanvasPath

func FromCanvasPath(p *canvas.Path) *geom.Path

FromCanvasPath 把 canvas.Path 转为 geom.Path。椭圆弧保留为弧段,由 geom 在需要时展开。

func FromCanvasResolution

func FromCanvasResolution(r canvas.Resolution) geom.Resolution

FromCanvasResolution 把 canvas.Resolution 转为 geom.Resolution(两者底层 均以点/毫米存储)。

func ToCanvasCapper

func ToCanvasCapper(c geom.Capper) canvas.Capper

ToCanvasCapper 把 geom 线帽转为 canvas 线帽。

func ToCanvasFillRule

func ToCanvasFillRule(rule geom.FillRule) canvas.FillRule

ToCanvasFillRule 把 geom.FillRule 转为 canvas.FillRule。 两者的常量顺序一致(NonZero/EvenOdd/Positive/Negative),直接按底层值转换。

func ToCanvasGradient

func ToCanvasGradient(g geom.Gradient) canvas.Gradient

ToCanvasGradient 把 geom.Gradient 包装为 canvas.Gradient。原生的 *geom.LinearGradient/*geom.RadialGradient 会还原为 canvas 原生线性/径向 渐变,以保留 PDF/SVG 的矢量渐变输出;其余自定义采样渐变包装为 canvas.Gradient(canvas 无法矢量序列化时按采样栅格化)。默认 LinearColorSpace(canvas 不做 gamma 往返)下采样结果与 canvas 原生渐变一致。

func ToCanvasJoiner

func ToCanvasJoiner(j geom.Joiner) canvas.Joiner

ToCanvasJoiner 把 geom 连接器转为 canvas 连接器。

func ToCanvasMatrix

func ToCanvasMatrix(m geom.Matrix) canvas.Matrix

ToCanvasMatrix 把 geom.Matrix 转为 canvas.Matrix。

func ToCanvasPaint

func ToCanvasPaint(p geom.Paint) canvas.Paint

ToCanvasPaint 把 geom.Paint 转为 canvas.Paint。

func ToCanvasPath

func ToCanvasPath(p *geom.Path) *canvas.Path

ToCanvasPath 把 geom.Path 转为 canvas.Path。

结果按 *geom.Path 指针缓存,因此**同一个 Path 对象画过一次之后不要再改内容**: Reset 后重新填充再画会拿到首次的缓存,所有图元都落在第一次的位置上(表现为 多个图元叠在一起,只看得出第一个)。要重复绘制同一形状就每次新建 Path,或先把 数据拷走再改。

func ToCanvasResolution

func ToCanvasResolution(r geom.Resolution) canvas.Resolution

ToCanvasResolution 把 geom.Resolution 转为 canvas.Resolution。

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL