Documentation ¶
Overview ¶
Package scaffold parses JSON data, matches it to known template components and controls rendering of the resultant image.
Index ¶
- type BaseColour
- type BaseImage
- type Builder
- type ComponentTemplate
- type ImageBuilder
- func (builder ImageBuilder) ApplyComponents() (Builder, error)
- func (builder ImageBuilder) GetCanvas() render.Canvas
- func (builder ImageBuilder) GetComponents() []render.Component
- func (builder ImageBuilder) GetNamedPropertiesList() render.NamedProperties
- func (builder ImageBuilder) LoadComponentsData(fileData []byte) (Builder, error)
- func (builder ImageBuilder) LoadComponentsFile(fileName string) (Builder, error)
- func (builder ImageBuilder) SetCanvas(newCanvas render.Canvas) Builder
- func (builder ImageBuilder) SetComponents(components []ToggleableComponent) Builder
- func (builder ImageBuilder) SetNamedProperties(properties render.NamedProperties) (Builder, error)
- func (builder ImageBuilder) WriteToBMP() ([]byte, error)
- type Template
- type ToggleableComponent
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BaseColour ¶
type BaseColour struct { // Red is the red channel. Red string `json:"R"` // Green is the green channel. Green string `json:"G"` // Blue is the blue channel. Blue string `json:"B"` // Alpha is the alpha channel. Alpha string `json:"A"` }
BaseColour is the template format of the base colour settings.
type BaseImage ¶
type BaseImage struct { // FileName is the file to load the base image from. FileName string `json:"fileName"` // Data is the base64-encoded data to load the base image from. Data string `json:"data"` // BaseColour is the pure colour to use as a base image. BaseColour BaseColour `json:"baseColour"` // BaseWidth is the width to use for pure colour. BaseWidth string `json:"width"` // BaseHeight is the height to use for pure colour. BaseHeight string `json:"height"` // PPI is the pixels per inch to set in the canvas. PPI string `json:"ppi"` }
BaseImage is the template format of the base image settings.
type Builder ¶
type Builder interface { GetCanvas() render.Canvas SetCanvas(newCanvas render.Canvas) Builder GetComponents() []render.Component SetComponents(components []ToggleableComponent) Builder GetNamedPropertiesList() render.NamedProperties SetNamedProperties(properties render.NamedProperties) (Builder, error) ApplyComponents() (Builder, error) LoadComponentsFile(fileName string) (Builder, error) LoadComponentsData(fileData []byte) (Builder, error) WriteToBMP() ([]byte, error) }
Builder manipulates Canvas objects and outputs to a bitmap.
func NewBuilder ¶
func NewBuilder(fs vfs.FileSystem) Builder
NewBuilder generates a new ImageBuilder with an internal canvas of the specified width and height, and optionally the specified starting colour. No provided colour will result in defaults for Image.
type ComponentTemplate ¶
type ComponentTemplate struct { // Type is the type of the component, such as Rectangle or Barcode. Type string `json:"type"` // Conditional is the condition(s) on which the component will render. Conditional render.ComponentConditional `json:"conditional"` // Properties are the raw, unprocessed JSON data for the component to parse Properties json.RawMessage `json:"properties"` }
ComponentTemplate is a partial unmarshalled Component, with its properties left in raw form to be handled by each known type of Component.
type ImageBuilder ¶
type ImageBuilder struct { // Canvas is the canvas on which the image is drawn. Canvas render.Canvas // Components are the components to render. Components []ToggleableComponent // NamedProperties are the user/application defined variables NamedProperties render.NamedProperties // contains filtered or unexported fields }
ImageBuilder uses golang's native Image package to implement the Builder interface.
func (ImageBuilder) ApplyComponents ¶
func (builder ImageBuilder) ApplyComponents() (Builder, error)
ApplyComponents iterates over the internal Component array, applying each in turn to the Canvas.
func (ImageBuilder) GetCanvas ¶
func (builder ImageBuilder) GetCanvas() render.Canvas
GetCanvas returns the internal Canvas object.
func (ImageBuilder) GetComponents ¶
func (builder ImageBuilder) GetComponents() []render.Component
GetComponents gets the internal Component array.
func (ImageBuilder) GetNamedPropertiesList ¶
func (builder ImageBuilder) GetNamedPropertiesList() render.NamedProperties
GetNamedPropertiesList returns the list of named properties in the builder object.
func (ImageBuilder) LoadComponentsData ¶
func (builder ImageBuilder) LoadComponentsData(fileData []byte) (Builder, error)
LoadComponentsData sets the internal component array based on the contents of the specified JSON data.
func (ImageBuilder) LoadComponentsFile ¶
func (builder ImageBuilder) LoadComponentsFile(fileName string) (Builder, error)
LoadComponentsFile sets the internal Component array based on the contents of the specified JSON file.
func (ImageBuilder) SetCanvas ¶
func (builder ImageBuilder) SetCanvas(newCanvas render.Canvas) Builder
SetCanvas sets the internal Canvas object.
func (ImageBuilder) SetComponents ¶
func (builder ImageBuilder) SetComponents(components []ToggleableComponent) Builder
SetComponents sets the internal Component array.
func (ImageBuilder) SetNamedProperties ¶
func (builder ImageBuilder) SetNamedProperties(properties render.NamedProperties) (Builder, error)
SetNamedProperties sets the values of names properties in all components and conditionals in the builder.
func (ImageBuilder) WriteToBMP ¶
func (builder ImageBuilder) WriteToBMP() ([]byte, error)
WriteToBMP outputs the contents of the builder to a BMP byte array.
type Template ¶
type Template struct { // BaseImage is the bottom layer of the canvas, on which to draw everything else. BaseImage BaseImage `json:"baseImage"` // Components are all other elements to be rendered. Components []ComponentTemplate `json:"components"` }
Template is the format of the JSON file used as a template for building images. See samples.json for examples, each element in the samples array is a complete and valid template object.
type ToggleableComponent ¶
type ToggleableComponent struct { // Conditional is the condition(s) on which the component will render. Conditional render.ComponentConditional // Component is the component to render. Component render.Component }
ToggleableComponent is a component with its conditional.