shithub: blie

ref: 7455a7027cde79e0304bade55b6616983e2e8e1a
dir: /words/

View raw version
blie - blended layers image editor

FILE FORMAT

The "file" is a folder.

this folder needs at least a single file "layers", which lists all
the layers in order.

Each layer has its own subdirectory within "l", named as the layer,
with at least a file named "meta". The meta files looks like this:

	editor-type
	Label
	Drawop

editor-type must be a valid editor module. At the moment, only
p9 images are supported, which is "p9img".

Label is a user label which should be displayed in the editor.

Drawop is the drawing operation of that layer. It uses the names
from draw(2), for example SatopD (see
https://en.wikipedia.org/wiki/Alpha_compositing and draw(2)).

All remaining lines are ignored.

In addition to the "meta" file, the actual data of that layer should
be stored in separate files. The p9 image editor "img" uses two
additional files; both are p9 (rgb) images:

- "img" is the image data of the layer,
- "mask" is an optional mask which will be used for blending.


In total, a sample structure could look like this:

- /layers
- /l/layerA/meta
- /l/layerA/img
- /l/layerB/meta
- /l/layerB/img
- /l/layerB/mask

In this case, "layers" would look like this:

	layerA
	layerB

and "layerB/meta" would look like this:

	p9img
	My fancy layer B
	SatopD


INTERACTIVE MODE

Invocation: Just call the program without -c flag.

Usage:

When starting, you can see three panels:

- Top: tool bar (currently empty)
- Bottom right: layers bar (lists layers from top to bottom)
- Bottom left: drawing

Most input reacts depending on where the mouse pointer is. If the
pointer is on top of the layers window, the input will be forwarded
to layer management, for example. Exceptions are the following
commands, which work globally:

- q | del: exit
- tab: open command prompt (see COMMANDS)

Drawing controls:

- Up, Left, Down, Right: pan image
- , and .: zoom image

Layer controls:

- click: select layer

Selecting a layer also changes the "editor". The editor is a
module that takes over part of the control, depending on the
type (see first section about file format).


COMMANDS

following commands exist:

- quality <q>: <q=0|1> - quality mode (higher = better, but slower)
- w<m>: <m=a|t|nil> - save data
  - a: save all (all layers and tools)
  - t: save tools for current editor
  - nil (absent): save current layer
  - save functions are forwarded to the layer editor
    (savedata, savelayer).


EDITOR p9image

The tools panel shows buttons in a grid.

First row:
- C: show composite image
- S: show only the image of this layer ("Solo")
- M: show only mask
- the others: brushes (first brush is a configurable circle brush)

Second row:
- color palette

For the color palette and configurable brushes:
- left click to select
- right click to configure
- middle mouse to preview brush (not implemented yet)


EDITOR filter

Currently only files:

- script: executable script file (or binary) to be executed
- params: database file with parameters

parameters are injected as environment variables