Documentation
¶
Overview ¶
Package render 将解析后的 OFD 文档渲染为图形内容。
Index ¶
- Constants
- Variables
- func FallbackFontData(family string) ([]byte, bool)
- func RegisterFallbackFont(data []byte, family string, style FontStyle) error
- func RegisterFallbackFontFactory(register func(data []byte, family string, style FontStyle) error, ...)
- func RegisterFallbackFontUnregisterer(unregisterer func(family string) error)
- func RegisterFontEngineFactory(fn func(doc *parser.Document) FontEngine)
- func RegisterOffscreenSurfaceFactory(fn func(width, height float64, resolution geom.Resolution) OffscreenSurface)
- func RegisterPDFDocumentFactory(fn func(w io.Writer, options PDFOptions) (PDFDocument, error))
- func RegisterSVGSceneFactory(fn func(data []byte) (SVGScene, error))
- func RegisterVectorSurfaceFactory(fn func(width, height float64, draw func(DrawContext)) VectorSurface)
- func RegisteredFallbackFamilies() []string
- func UnregisterFallbackFont(family string) error
- type Backend
- type BackendFactory
- type CTColor
- type DestType
- type Document
- func (p *Document) Annot(ctx DrawContext, annot *models.Annot, pb models.StBox)
- func (p *Document) Background() color.Color
- func (p *Document) Close()
- func (p *Document) Composite(ctx DrawContext, object models.CompositeObject, dp *models.DrawParam, ...)
- func (p *Document) Draw(ctx DrawContext, page *parser.Page) error
- func (p *Document) FallbackFontFamily(id models.StRefID) string
- func (p *Document) HasLoadedEmbeddedFont(id models.StRefID) bool
- func (p *Document) Image(ctx DrawContext, object models.ImageObject, dp *models.DrawParam, ...)
- func (p *Document) Layer(ctx DrawContext, layer *models.Layer, pb models.StBox)
- func (p *Document) NewView(background color.Color, dpi geom.Resolution) (*Document, error)
- func (p *Document) Outlines(resolve PageLinkResolver) []drawing.PageOutline
- func (p *Document) Page(page *parser.Page) (VectorSurface, error)
- func (p *Document) PageContent(ctx DrawContext, page *parser.Page, seal bool)
- func (p *Document) PageExternalLinks(page *parser.Page) []drawing.PageLink
- func (p *Document) PageLinks(page *parser.Page, resolve PageLinkResolver) []drawing.PageLink
- func (p *Document) PageLinksWithVisibility(page *parser.Page, resolve PageLinkResolver, visibility PageVisibility) []drawing.PageLink
- func (p *Document) PageWithVisibility(page *parser.Page, visibility PageVisibility) (VectorSurface, error)
- func (p *Document) Path(ctx DrawContext, object models.PathObject, dp *models.DrawParam, ...)
- func (p *Document) RasterizePage(page *parser.Page, backendName string, resolution geom.Resolution) (*image.RGBA, error)
- func (p *Document) RemoveFallbackFont(family string)
- func (p *Document) Seal(ctx DrawContext, info *parser.SealInfo, pb models.StBox) error
- func (p *Document) Template(ctx DrawContext, template models.Template, pb models.StBox)
- func (p *Document) TemplateForeground(template models.Template) bool
- func (p *Document) Text(ctx DrawContext, object models.TextObject, dp *models.DrawParam, ...)
- func (p *Document) TextLayouts(page *parser.Page) []TextLayout
- func (p *Document) TextLayoutsForRuns(page *parser.Page, runIndices []int) []TextLayout
- func (p *Document) TextLayoutsForRunsWithVisibility(page *parser.Page, runIndices []int, visibility PageVisibility) []TextLayout
- func (p *Document) TextLayoutsWithVisibility(page *parser.Page, visibility PageVisibility) []TextLayout
- func (p *Document) TextValues(page *parser.Page) []string
- func (p *Document) TextValuesWithVisibility(page *parser.Page, visibility PageVisibility) []string
- func (p *Document) UseFallbackFont(family string) error
- type DrawContext
- type EncodedImage
- func (e *EncodedImage) At(x, y int) color.Color
- func (e *EncodedImage) Bounds() image.Rectangle
- func (e *EncodedImage) CanvasImageOnce(build func() image.Image) image.Image
- func (e *EncodedImage) ColorModel() color.Model
- func (e *EncodedImage) Image() (image.Image, error)
- func (e *EncodedImage) Weight() int64
- type FontEngine
- type FontFace
- type FontFamily
- type FontStyle
- type GlyphLayout
- type LinkTarget
- type LinkTargetRef
- type OffscreenSurface
- type PDFDocument
- type PDFOptions
- type PageLink
- type PageLinkResolver
- type PageOutline
- type PageVisibility
- type SVGScene
- type TextLayout
- type TextRun
- type VectorSurface
Constants ¶
const ( FontRegular = drawing.FontRegular FontThin = drawing.FontThin FontExtraLight = drawing.FontExtraLight FontLight = drawing.FontLight FontMedium = drawing.FontMedium FontSemiBold = drawing.FontSemiBold FontBold = drawing.FontBold FontExtraBold = drawing.FontExtraBold FontBlack = drawing.FontBlack FontItalic = drawing.FontItalic )
字重常量转发,便于本包与调用方继续使用 render.FontRegular 等。
const ( DestFit = drawing.DestFit DestXYZ = drawing.DestXYZ )
目的地类型别名,供大纲与跳转目标使用。
const BackendCanvas = drawing.BackendCanvas
BackendCanvas 是内置的 tdewolff/canvas 光栅后端名。canvas 实现位于 internal/render/backends/canvas,需空白导入该包注册后方可使用。
Variables ¶
var ( RegisterBackend = drawing.RegisterBackend RegisteredBackends = drawing.RegisteredBackends )
RegisterBackend / RegisteredBackends 转发到 drawing 包的注册表。插件包在 自己的 init() 里注册,例:
import _ "github.com/zc310/ofd/internal/render/backends/canvas" // 内置 canvas import _ "github.com/zc310/ofd/internal/render/backends/gg" // gogpu/gg
只有显式导入后端的二进制才会包含对应实现。
Functions ¶
func FallbackFontData ¶ added in v0.1.2
FallbackFontData 返回已全局注册回退字体族的首个来源数据。 返回注册表共享的只读字节,调用方不得修改。
func RegisterFallbackFont ¶ added in v0.1.2
RegisterFallbackFont 在进程内全局注册回退字体;需已导入字体引擎实现。
func RegisterFallbackFontFactory ¶ added in v0.1.3
func RegisterFallbackFontFactory(register func(data []byte, family string, style FontStyle) error, data func(family string) ([]byte, bool))
RegisterFallbackFontFactory 注册回退字体的全局注册/查询实现。
func RegisterFallbackFontUnregisterer ¶ added in v0.1.5
RegisterFallbackFontUnregisterer 登记反注册实现。
func RegisterFontEngineFactory ¶ added in v0.1.3
func RegisterFontEngineFactory(fn func(doc *parser.Document) FontEngine)
RegisterFontEngineFactory 注册字体引擎工厂,供 canvas 后端注册或测试注入。
func RegisterOffscreenSurfaceFactory ¶ added in v0.1.3
func RegisterOffscreenSurfaceFactory(fn func(width, height float64, resolution geom.Resolution) OffscreenSurface)
RegisterOffscreenSurfaceFactory 注册离屏表面工厂,供 canvas 后端注册或测试注入。
func RegisterPDFDocumentFactory ¶ added in v0.1.3
func RegisterPDFDocumentFactory(fn func(w io.Writer, options PDFOptions) (PDFDocument, error))
RegisterPDFDocumentFactory 注册 PDF 文档写入器,供 canvas 后端注册或测试注入。
func RegisterSVGSceneFactory ¶ added in v0.1.3
RegisterSVGSceneFactory 注册 SVG 场景解析器,供 canvas 后端注册或测试注入。
func RegisterVectorSurfaceFactory ¶ added in v0.1.3
func RegisterVectorSurfaceFactory(fn func(width, height float64, draw func(DrawContext)) VectorSurface)
RegisterVectorSurfaceFactory 注册矢量表面工厂,供 canvas 后端注册或测试注入。
func RegisteredFallbackFamilies ¶ added in v0.1.5
func RegisteredFallbackFamilies() []string
RegisteredFallbackFamilies 返回已全局注册的回退字体族名,按注册顺序。
供那些不走 Reader、直接拿 *Document 编码的调用方使用:字体注册进引擎 只是一半,另一半是把族名 UseFallbackFont 到具体文档上,否则文档渲染时 仍按缺字体处理,页面上一个字都没有。
func UnregisterFallbackFont ¶ added in v0.1.5
UnregisterFallbackFont 声明某个字体族不再需要,释放其字节。
仍被打开的文档引用着它时不会立即删除,而是等最后一个文档放手——那些文档 还要用它渲染,提前释放会出问题。因此界面上的"删除"对已打开的文档是延迟 生效的,这是有意的。
Types ¶
type Backend ¶ added in v0.1.3
Backend 是后端契约的别名:契约定义在与绘制库无关的 drawing 包,插件后端 (gg/ftgg/tinyskia/draw2d)直接依赖 drawing,不必依赖 render/canvas。
func NewBackend ¶ added in v0.1.3
NewBackend 创建页面栅格化后端。
name 为后端标识;各后端(含内置的 BackendCanvas)都需先空白导入对应插件 包来注册(见 RegisterBackend)。width/height 是页面物理尺寸(mm), resolution 是输出分辨率(geom.DPI / geom.DPMM)。
type BackendFactory ¶ added in v0.1.3
type BackendFactory = drawing.BackendFactory
BackendFactory 是 drawing.BackendFactory 的别名:创建后端实例,由各后端 插件包通过 RegisterBackend 注册。width/height 为页面物理尺寸(mm), resolution 为输出分辨率(geom.Resolution,与绘制库无关)。
type Document ¶
func NewDocumentWithDPI ¶ added in v0.1.1
func NewDocumentWithDPI(background color.Color, doc *parser.Document, dpi geom.Resolution) *Document
NewDocumentWithDPI 创建带有输出分辨率的渲染文档。 dpi 用于复合图元等内部离屏栅格化,不改变页面的物理尺寸。
func (*Document) Background ¶ added in v0.1.4
Background 返回文档渲染时使用的背景色。调用方可以据此判断能否复用已有的 渲染文档,避免为不同背景重复构建字体和图片缓存。
func (*Document) Close ¶ added in v0.1.4
func (p *Document) Close()
Close 释放文档持有的渲染期资源,最重要的是字体。
字体是这里最重的资源:一个 CJK 字体的轮廓约 50 MB,远大于文档本身。不显式 释放时,包级字体缓存会一直持有它,浏览多个文档的会话里这些内存会累积。
幂等,且关闭后不应再使用该文档。
func (*Document) Composite ¶ added in v0.0.5
func (p *Document) Composite(ctx DrawContext, object models.CompositeObject, dp *models.DrawParam, pb models.StBox)
Composite 绘制复合图元(CompositeObject)。
CompositeGraphicUnit 的内容位于自身的 [0,Width]x[0,Height] 坐标系中, 先渲染完整单元,再使用 CompositeObject 的 Boundary 和 CTM 映射到页面, 保留单元内部坐标,不根据透明像素重新裁剪内容。
func (*Document) FallbackFontFamily ¶ added in v0.0.9
FallbackFontFamily 返回为文档字体选择的外部字体族。
func (*Document) HasLoadedEmbeddedFont ¶ added in v0.0.9
HasLoadedEmbeddedFont 判断文档字体是否可以作为内嵌字体族提供给浏览器。
func (*Document) Image ¶
func (p *Document) Image(ctx DrawContext, object models.ImageObject, dp *models.DrawParam, pb models.StBox)
func (*Document) NewView ¶ added in v0.1.5
NewView 创建独立的 DPI/背景视图,复用同一文档的字体解析、映射和整形缓存。 每个视图都需 Close;最后一个视图关闭时才释放共享字体。 任一视图调用 UseFallbackFont/RemoveFallbackFont 都会更新共享字体引擎,影响所有 视图;各 Document 的 fallbacks 列表从创建时复制,之后仅由本视图的方法更新, 不随其他视图同步,不能将其当作共享字体引擎的实时快照。
func (*Document) Outlines ¶ added in v0.1.5
func (p *Document) Outlines(resolve PageLinkResolver) []drawing.PageOutline
Outlines 返回文档大纲的扁平条目序列,按文档顺序排列。
resolve 与 PageLinks 用的是同一套解析器:目标页必须在输出里才能建立跳转。
func (*Document) PageContent ¶
func (p *Document) PageContent(ctx DrawContext, page *parser.Page, seal bool)
func (*Document) PageExternalLinks ¶ added in v0.1.5
PageExternalLinks 只返回外部链接热区,供不处理内部跳转的调用方使用。
func (*Document) PageLinks ¶ added in v0.1.5
PageLinks 返回页面上所有链接热区,按出现顺序排列。
resolve 为 nil 时只导出外部链接,内部跳转一律丢弃——调用方不知道最终会输出 哪些页时,宁可不导出也不能写出指向不存在页面的链接。
page 为 nil,或页面内容读取失败时返回 nil:链接是附加信息,读不到内容就没有 热区可言,不应让整个转换失败。
func (*Document) PageLinksWithVisibility ¶ added in v0.1.5
func (p *Document) PageLinksWithVisibility(page *parser.Page, resolve PageLinkResolver, visibility PageVisibility) []drawing.PageLink
PageLinksWithVisibility 排除隐藏正文图层和模板中的链接,保留注解链接。
func (*Document) PageWithVisibility ¶ added in v0.1.5
func (p *Document) PageWithVisibility(page *parser.Page, visibility PageVisibility) (VectorSurface, error)
PageWithVisibility 过滤目标页正文图层及模板引用,保留注解和签章。 过滤状态属于本次绘制,不修改共享页面或文档渲染上下文。
func (*Document) Path ¶
func (p *Document) Path(ctx DrawContext, object models.PathObject, dp *models.DrawParam, pb models.StBox)
func (*Document) RasterizePage ¶ added in v0.1.3
func (p *Document) RasterizePage(page *parser.Page, backendName string, resolution geom.Resolution) (*image.RGBA, error)
RasterizePage 把指定页面栅格化为 RGBA 图像。backendName 选用渲染后端 (BackendCanvas 需空白导入 internal/render/backends/canvas;其它后端见 drawing.Backend*,需导入对应插件包);resolution 决定输出图片的像素密度。
func (*Document) RemoveFallbackFont ¶ added in v0.1.3
RemoveFallbackFont 取消先前通过 UseFallbackFont 登记的回退字体族,使缺失字体 恢复为内嵌或默认字体。
func (*Document) TemplateForeground ¶ added in v0.1.5
TemplateForeground 按页面引用、模板声明、默认 Background 的顺序确定叠放位置。
func (*Document) Text ¶
func (p *Document) Text(ctx DrawContext, object models.TextObject, dp *models.DrawParam, pb models.StBox)
func (*Document) TextLayouts ¶ added in v0.0.9
func (p *Document) TextLayouts(page *parser.Page) []TextLayout
TextLayouts 返回页面文字的字符级布局。字符步进使用渲染器的字体度量、 DeltaX/DeltaY、ReadDirection 和 CTM 基础计算,避免网页字体度量造成高亮偏移。
func (*Document) TextLayoutsForRuns ¶ added in v0.1.4
func (p *Document) TextLayoutsForRuns(page *parser.Page, runIndices []int) []TextLayout
TextLayoutsForRuns 返回指定 run 的字符级布局,结果按页面绘制顺序排列。 run 索引与 TextValues 返回的顺序一致。
func (*Document) TextLayoutsForRunsWithVisibility ¶ added in v0.1.5
func (p *Document) TextLayoutsForRunsWithVisibility(page *parser.Page, runIndices []int, visibility PageVisibility) []TextLayout
TextLayoutsForRunsWithVisibility 的 run 索引与过滤后的 TextValues 保持一致。
func (*Document) TextLayoutsWithVisibility ¶ added in v0.1.5
func (p *Document) TextLayoutsWithVisibility(page *parser.Page, visibility PageVisibility) []TextLayout
TextLayoutsWithVisibility 返回过滤正文图层和模板后的布局。
func (*Document) TextValues ¶ added in v0.1.4
TextValues 返回页面中可见的非空 TextCode 文本,顺序与 TextLayouts 一致。 搜索等只需读取文字内容的调用方可避免构建字符级几何信息。
func (*Document) TextValuesWithVisibility ¶ added in v0.1.5
func (p *Document) TextValuesWithVisibility(page *parser.Page, visibility PageVisibility) []string
TextValuesWithVisibility 返回过滤正文图层和模板后的文字,供搜索索引使用。
func (*Document) UseFallbackFont ¶ added in v0.1.2
UseFallbackFont 使当前文档缺失字体时使用已全局注册的回退字体族。
type DrawContext ¶ added in v0.1.3
type DrawContext = drawing.DrawContext
DrawContext 是 drawing.DrawContext 的别名,保持本包既有调用点可用。契约 定义在 drawing 包,使后端插件只依赖 drawing/geom,不依赖 render/canvas。
type EncodedImage ¶ added in v0.1.3
type EncodedImage struct {
Format string // "jpeg" 或 "png"
Data []byte
// contains filtered or unexported fields
}
EncodedImage 是保留原始编码字节的懒解码图片:以标准 image.Image 暴露, 首次访问时才解码;同时保留编码数据,供 canvas PDF 写入器等按原字节内嵌。 它与绘制库无关;canvas 适配层可把编码数据再包装成 canvas/image.Image。
func NewEncodedImage ¶ added in v0.1.3
func NewEncodedImage(format string, data []byte) *EncodedImage
NewEncodedImage 返回保留编码数据的懒解码图片(导出供 canvas 等后端或测试使用)。
func (*EncodedImage) At ¶ added in v0.1.3
func (e *EncodedImage) At(x, y int) color.Color
At 返回像素颜色(会触发解码)。
func (*EncodedImage) Bounds ¶ added in v0.1.3
func (e *EncodedImage) Bounds() image.Rectangle
Bounds 返回图片边界。只读取图片头(DecodeConfig)获取尺寸,不触发完整解码。
func (*EncodedImage) CanvasImageOnce ¶ added in v0.1.4
func (e *EncodedImage) CanvasImageOnce(build func() image.Image) image.Image
CanvasImageOnce 返回 canvas 适配层构造的对象,首次调用时用 build 构造并缓存, 之后直接返回同一对象。并发调用只会构造一次,因此可以安全地在多个页面同时 渲染时使用。build 返回 nil 表示该图片不走原字节内嵌快路径(例如灰度图或 编码无法识别),此时结果同样被缓存,避免每次访问都重新解码。
func (*EncodedImage) ColorModel ¶ added in v0.1.3
func (e *EncodedImage) ColorModel() color.Model
ColorModel 返回颜色模型。只读取图片头,不触发完整解码。
func (*EncodedImage) Image ¶ added in v0.1.3
func (e *EncodedImage) Image() (image.Image, error)
Image 解码并返回底层原生图像,结果会缓存。它同时满足各后端用于“延迟解码 包装器”的最小接口(Image() (image.Image, error))。
func (*EncodedImage) Weight ¶ added in v0.1.3
func (e *EncodedImage) Weight() int64
Weight 估算该图片在缓存中的内存占用:编码字节 + 解码后的像素。只读取 图片头(DecodeConfig)获取尺寸与颜色模型,不触发完整解码。
type FontEngine ¶ added in v0.1.3
type FontEngine = drawing.FontEngine
字体相关契约定义在 drawing 包,render 通过别名保持既有调用点可用。
func NewFontEngine ¶ added in v0.1.3
func NewFontEngine(doc *parser.Document) FontEngine
NewFontEngine 按已注册工厂创建字体引擎;未注册时返回 nil。
type FontFamily ¶ added in v0.1.3
type FontFamily = drawing.FontFamily
字体相关契约定义在 drawing 包,render 通过别名保持既有调用点可用。
type GlyphLayout ¶ added in v0.0.9
type GlyphLayout struct {
Text string
X float64
Y float64
Width float64
Height float64
Angle float64
}
GlyphLayout 描述一个文字字符在页面上的近似区域。坐标单位为毫米, 使用页面左上角作为原点。
type LinkTarget ¶ added in v0.1.5
type LinkTarget = drawing.LinkTarget
矢量输出契约定义在 drawing 包,render 通过别名保持既有调用点可用。
type LinkTargetRef ¶ added in v0.1.5
type LinkTargetRef struct {
// Index 是目标页在输出中的页序号(从 0 起)。
Index int
// Height 是目标页高度(mm)。
Height float64
}
LinkTargetRef 是内部跳转目标的定位信息。
type OffscreenSurface ¶ added in v0.1.3
type OffscreenSurface interface {
DrawContext
// Raster 返回离屏内容对应的 RGBA 图像。
Raster() *image.RGBA
}
OffscreenSurface 是离屏栅格表面:绘制完成后取回 RGBA。用于网格渐变、复合 单元、图片掩码等需要先在独立画布上绘制再贴回的场景。
type PDFDocument ¶ added in v0.1.3
type PDFDocument = drawing.PDFDocument
矢量输出契约定义在 drawing 包,render 通过别名保持既有调用点可用。
func NewPDFDocument ¶ added in v0.1.3
func NewPDFDocument(w io.Writer, options PDFOptions) (PDFDocument, error)
NewPDFDocument 创建 PDF 文档;未注册写入器时返回错误。
type PDFOptions ¶ added in v0.1.3
type PDFOptions = drawing.PDFOptions
矢量输出契约定义在 drawing 包,render 通过别名保持既有调用点可用。
type PageLinkResolver ¶ added in v0.1.5
type PageLinkResolver func(pageID models.StID) (LinkTargetRef, bool)
PageLinkResolver 把 OFD 页面的 StID 解析为目标页在输出中的位置。ok 为 false 表示目标页不会出现在输出里(例如被页码范围裁掉),此时对应链接必须丢弃。
type PageOutline ¶ added in v0.1.5
type PageOutline = drawing.PageOutline
矢量输出契约定义在 drawing 包,render 通过别名保持既有调用点可用。
type PageVisibility ¶ added in v0.1.5
type PageVisibility struct {
HiddenLayers map[models.StID]bool
HiddenTemplates map[models.StID]bool
}
PageVisibility 是一次页面输出的过滤设置;正文层与模板引用分别标识,避免 ID 混淆。 同一模板在其他页面的引用不受影响。
type TextLayout ¶ added in v0.0.9
type TextLayout struct {
Text string
X float64
Y float64
Width float64
// Height 是字体上伸与下延之和,用于覆盖层行高;无字体度量时按 EM 高度兜底。
Height float64
Font uint64
Size float64
Weight int
ReadDirection int
CharDirection int
Bold bool
Italic bool
Glyphs []GlyphLayout
}
TextLayout 描述一个 TextCode 及其字符级几何信息。
type VectorSurface ¶ added in v0.1.3
type VectorSurface = drawing.VectorSurface
矢量输出契约定义在 drawing 包,render 通过别名保持既有调用点可用。
func NewVectorSurface ¶ added in v0.1.5
func NewVectorSurface(width, height float64, draw func(DrawContext)) (VectorSurface, error)
NewVectorSurface 创建一张宽高(毫米)给定的矢量表面,并在创建时回调一次绘制。
与 Document.Page 的区别是尺寸自定:拼版(N-up)需要的是一张比源页大的纸, 再把若干源页按变换画进去。draw 为空时只得到一张空白纸。
Source Files
¶
- backend.go
- color_space.go
- ctcolor.go
- document.go
- document_composite.go
- document_gradient.go
- document_gradient_mesh.go
- document_gradient_shading.go
- document_image.go
- document_links.go
- document_outlines.go
- document_path.go
- document_pattern.go
- document_seal.go
- document_style.go
- document_template.go
- document_text.go
- document_text_gradient.go
- document_text_layout.go
- fontengine.go
- gradient_transform.go
- image_lazy.go
- offscreen.go
- register.go
- renderctx.go
- svg.go
- textface.go
- vector.go
Directories
¶
| Path | Synopsis |
|---|---|
|
backends
|
|
|
canvas
Package canvas 提供 tdewolff/canvas 的 render 后端实现:DrawContext (canvasBackend)、矢量表面与 PDF 写入器(VectorSurface/PDFDocument)、 SVG 场景、离屏栅格表面、内置栅格后端(BackendCanvas),以及默认字体引擎 (Fonts)。
|
Package canvas 提供 tdewolff/canvas 的 render 后端实现:DrawContext (canvasBackend)、矢量表面与 PDF 写入器(VectorSurface/PDFDocument)、 SVG 场景、离屏栅格表面、内置栅格后端(BackendCanvas),以及默认字体引擎 (Fonts)。 |
|
canvas/canvasconv
Package canvasconv 提供 internal/render/geom 的中性几何类型与 tdewolff/canvas 类型之间的转换,供 canvas 后端(把 geom 绘制指令转成 canvas.Canvas 用于 Page()/PDF/SVG 矢量输出)以及迁移期的适配层使用。
|
Package canvasconv 提供 internal/render/geom 的中性几何类型与 tdewolff/canvas 类型之间的转换,供 canvas 后端(把 geom 绘制指令转成 canvas.Canvas 用于 Page()/PDF/SVG 矢量输出)以及迁移期的适配层使用。 |
|
draw2d
Package draw2d 提供基于 github.com/llgcode/draw2d 的页面栅格化后端,通过 空白导入注册到 internal/render 的注册表:
|
Package draw2d 提供基于 github.com/llgcode/draw2d 的页面栅格化后端,通过 空白导入注册到 internal/render 的注册表: |
|
ftgg
Package ftgg 提供基于 FloatTech/gg 的页面栅格化后端(fogleman API + freetype/raster),通过空白导入注册到 internal/render 的注册表(Go image 包风格):
|
Package ftgg 提供基于 FloatTech/gg 的页面栅格化后端(fogleman API + freetype/raster),通过空白导入注册到 internal/render 的注册表(Go image 包风格): |
|
gg
Package gg 提供基于 gogpu/gg 的页面栅格化后端,通过空白导入注册到 internal/render 的注册表:
|
Package gg 提供基于 gogpu/gg 的页面栅格化后端,通过空白导入注册到 internal/render 的注册表: |
|
rastercore
Package rastercore 提供可切换栅格后端共用的渲染上下文状态机。
|
Package rastercore 提供可切换栅格后端共用的渲染上下文状态机。 |
|
rasterstate
Package rasterstate 提供栅格后端 Push/Pop 时需要镜像保存/恢复的样式 状态容器。
|
Package rasterstate 提供栅格后端 Push/Pop 时需要镜像保存/恢复的样式 状态容器。 |
|
tinyskia
Package tinyskia 提供基于 tiny-skia 纯 Go 移植(Canvas 2D API)的页面 栅格化后端,通过空白导入注册到 internal/render 的注册表:
|
Package tinyskia 提供基于 tiny-skia 纯 Go 移植(Canvas 2D API)的页面 栅格化后端,通过空白导入注册到 internal/render 的注册表: |
|
Package drawing 定义与具体绘制库无关的绘制后端契约、注册表,以及 render 核心与各实现包共享的公共契约类型(字体、矢量输出、SVG 场景等)。
|
Package drawing 定义与具体绘制库无关的绘制后端契约、注册表,以及 render 核心与各实现包共享的公共契约类型(字体、矢量输出、SVG 场景等)。 |
|
Package geom 是与具体绘制库无关的二维几何与渐变引擎,供 internal/render 及其各绘制后端(canvas/gg/ftgg/tinyskia)共用。
|
Package geom 是与具体绘制库无关的二维几何与渐变引擎,供 internal/render 及其各绘制后端(canvas/gg/ftgg/tinyskia)共用。 |
|
Package testscene 提供后端一致性测试共用的“页面场景”与配套图元/度量: 同一段 DrawContext 绘制命令可依次作用到不同光栅后端,用于逐像素对照 与速度测试。
|
Package testscene 提供后端一致性测试共用的“页面场景”与配套图元/度量: 同一段 DrawContext 绘制命令可依次作用到不同光栅后端,用于逐像素对照 与速度测试。 |