shithub: blie

ref: a3477b9d29227db6e78cede76fdd9d6b83f5ea76
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

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).