composite

package
v0.0.0-...-5db5eaf Latest Latest
Warning

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

Go to latest
Published: Jan 21, 2022 License: MIT Imports: 18 Imported by: 0

Documentation

Overview

Package composite implements PSD image compositor.

This package supports only RGBA color mode.

Index

Constants

View Source
const DefaultTileSize = 64
View Source
const SeqIDRoot = -1

Variables

View Source
var ErrAborted = errors.New("composite: aborted")

Functions

This section is empty.

Types

type Layer

type Layer struct {
	SeqID int

	Name string

	Folder     bool
	FolderOpen bool

	Visible   bool
	BlendMode psd.BlendMode
	Opacity   int // 0-255
	Clipping  bool

	BlendClippedElements bool

	MaskEnabled      bool
	MaskDefaultColor int // 0 or 255

	Parent   *Layer
	Children []Layer

	ClippedBy *Layer
	Clip      []*Layer
}

Layer represents the layer image.

type Options

type Options struct {
	TileSize        int
	TransformMatrix f64.Aff3
	Gamma           float64
	// It will used to detect character encoding of a variable-width encoding layer name.
	LayerNameEncodingDetector func([]byte) encoding.Encoding
}

type Renderer

type Renderer struct {
	// contains filtered or unexported fields
}

Renderer is a renderer.

func (*Renderer) Render

func (r *Renderer) Render(ctx context.Context, dest *image.NRGBA) error

Render renders image.

func (*Renderer) RenderDiff

func (r *Renderer) RenderDiff(ctx context.Context, dest *image.NRGBA) error

RenderDiff renders only the place changed since last time.

func (*Renderer) SetDirtyByLayer

func (r *Renderer) SetDirtyByLayer(l *Layer)

type Tree

type Tree struct {
	Renderer *Renderer

	Root Layer

	Rect       image.Rectangle
	CanvasRect image.Rectangle
	// contains filtered or unexported fields
}

Tree represents the layer tree.

func New

func New(ctx context.Context, psdFile io.Reader, opt *Options) (*Tree, error)

New creates layer tree from the psdFile.

New can cancel processing through ctx. If you pass 0 to opt.TileSize, it will be DefaultTileSize.

func (*Tree) Clone

func (t *Tree) Clone() *Tree

Clone creates copy of r.

Required memory is not very large because layer images are shared between them.

func (*Tree) Thumbnail

func (t *Tree) Thumbnail(seqID int, size int, tempBuffer []byte) (*image.NRGBA, error)

Thumbnail creates thumbnail.

func (*Tree) ThumbnailSheet

func (t *Tree) ThumbnailSheet(ctx context.Context, size int) (*image.NRGBA, map[int]image.Rectangle, error)

func (*Tree) Thumbnails

func (t *Tree) Thumbnails(ctx context.Context, size int) (map[int]*image.NRGBA, error)

func (*Tree) Transform

func (t *Tree) Transform(ctx context.Context, m f64.Aff3, gamma float64) (*Tree, error)

Transform creates copy of r that transformed by m.

This takes time because it applies transformations to all layers.

Jump to

Keyboard shortcuts

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