SketchBlock 2.8 - Digital Sketching For The Amiga

Welcome

Here we are at release number 2.8.

It's now more than two years since I started coding SketchBlock. The first release being on the 30th January 2012, coding starting in the atumn of 2011.

In that time the project has grown somewhat and now is spread across 2.5Mb of source code, more than 83000 lines in more than 280 files! Written in 3 languages (C Python and Arexx). (not counting the perl scripts used for build ing the documentation!. There are now more than 150 ARexx commands.

This version address a few bugs and minor feature requests and clears the tables ready for starting work on SketchBlock 3.1 Professional.

See the Changelog for a complete list of changes and read on for an overview.
SketchBlock is a developing sketching and painting package
for AmigaOS. The project is in it's very early stages but is very
bold in it's long term aims. What are those aims? To create a sophisticated
application for digital painting, with full support for graphics tablets,
layers, a wide variety of tools, configurable interface, full arexx script
support, a plugin API and much more. The bias of SketchBlock will be towards
painting and creating digital art rather than image processing, but it will
likely be usable for manipulating photos too!

Version 2.6 remains available from Download From OS4Depot version 2.7 and above now know as 'SketchBlock Lite' may be purchsed from AmiStore for only £10.00 plus VAT. The Version 3 series to be know as 'SketchBlock Professional' is in progress.

Major Changes In SketchBlock 2.8

GUI Theming
You can now setup themes for you SketchBlock GUI, to enable you to use the gadget image set of your choice. Two themes are provided as standard the AISSTheme by 'Mason' and the KSTheme from Kevin Saunders.

Smoother Scrolling
The window scrolling was unoptimised, and is now much much smoother.

New Colour Picker Tool
As well as pressing CTRL when using the Paint tool to pick colours, you can use a new dedicated tool with more options, such as pixel avaraging, and pick alpha value.

Pressure Sensitive Brushes
Multiframe / AnimBrushes can now have different brush images for different pressures!

Over 100 new brush frames built into 90+ brushes
You going to have some fun trying all those out!

Planned Features And Current Usage

SketchBlock may be start from either the sehell or from Workbench
SketchBlock creates an assign SketchPath: which allows
ARexx etc to find scripts, and default scripts to save to the correct dir.
The assign is removed after the program exits.
NB: PROGDIR: cannot be used for this as this only applies to the SketchBlock
executable. ARExx, python, perl et al have their own 'PROGDIR:'
Some debug info may be printed to the console, but usually ony in the case of an error.

Support Scripts

SketchBlock makes use of many support scripts written in both ARexx and python.
These scripts use ProAction for a GUI. Some make us of PIL (The Python Imaging Library).
To get the best out of SketchBlock please install the latest versions of these utilities.

GUI

The GUI is currently divided into 3 windows, the default layout has one large
window containing the Sketch, where sketching and other editing is done, and
two other windows, Tools on the left and Layers on the right. These windows can
be hidden or revealed at anytime by pressing the TAB key.

Sketch Window

This is where the main sketching action takes place, it should be fairly
intuitive, simply click with the mouse and drag to paint. Less obvious will
that you can pick a colour from the current pixel by pressing CTRL at the same
time as you left click with the mouse (or stylus if you have a graphics tablet).

Gadgets And Controls

Window Title

The window title displays useful info about the project, such as project
name, modification status, filename ect

Pick Colour

Press CTRL whilst left clicking with the mouse or graphics tablet stylus.

Zoom

The zoom gadget is at the bottom left of the Sketch Window, enter the
desired zoom level in percent. The best graphical performance is obtained for
multiples of 2. ie 25% 50% 100% 200% 400% etc but any zoom percentage may be
specified.

Keyboard Shortcuts

As well as the varous menu shortcuts additional shortcuts can be defined in the prefs.xml file.
These are intended to be user definable but a useful set of defaults are defined.
Similarly to menus keyboard shortcuts can trigger commands, ARexx scripts or python scripts,
indeed scripts written in any language.

TAB - Toggles Tools windows.

CTRL Z - Undo last operation

CTRL Y - Redo last undo operation

P - Set current tool to "Paint".

E - Set current tool to "Erase".

S - Swap foreground and background colours

COMMA (',') - Decrease brush size

PERIOD ('.') - Increase brush size

RALT COMMA (',') - Lighten foreground colour

RALT PERIOD ('.') - Darken foreground colour

LSHIFT 1 - Begin recording Macro

RSHIFT QUOTE ('"') - Finish Recording Macro

Please have alook at the prefs file and the scripts it calls to inspire your own customisations.

Future Plans

This window will remain as simple as possible so as to give the largest
sketching space. However, a popup with Zoom presets wouldn't go amiss!

Menus

All windows share the same set of menus, these are defined via an xml preferences file, and can be user customised by editing that file.
The following are the defaults supplied, you should customise them to your needs.

Project Menu

The default project menu contains the following entries

New

Brings up the New Project Window to allow and new Sketch Project to be created

Open

Opens a requester to allow an existing sketch file to opened and loaded

Save

Save a sketch to it's file, if a new sketch, opens a requestor to allow a new filename to be selected

Save As

Save the active sketch to a new file

Save AS Brush

Save the project as a SketchBrush

Export As

Flatten the project and export as a 32bit ILBM to the filename chosenor if PIL and ProAction are installed the option to choose from a range of formats will be offered

Import

Import an image via the datatypes system

Postscript Print

"Print" the current project to a file as postcript. The GUI will offer various formats, postscript, eps, amd pdf.

Close

Close the active sketch, if the active sketch has been modified since last save, a requester suggesting saving before closing will show

Quit

Quit the entire application, currently no waning requester is show (will be implemented later!)

Edit Menu

The edit menu privides entries control editing the project

Undo

Undo one action in the active layers undo stack

Redo

Redo one action in the active layers redo stack

Copy

Copies the currently active layer into the system clipboard as an IFF image.

Paste

Pastes the contents of the system clipboard into the active project as a new layer. Only works if the clipbaord has an image in it!

Clear Selection

Clears the current slection, and disables the mask

Invert Selection

Inverts the current slection

Alpha To Selection Sub Menu

Modify the slection with the alpha channel of the current layer.
Actions are the same as those available in the tools.

REPLACE

Replace the slection entirely

ADD

Add to the current slection

SUBTRACT

Subtract from the current selection

INTERSECT

errm any guesses?

View Menu

Zoom SubMenu

Zoom related commands.

25%

50%

100%

200

400%

Zoom to the preset percentages

Fit To Window

Zoom project so as to fit the whole project into the window.

Fill Window

Zoom project so that the whole window is filled. If the projects aspect ratio is not the same as the window, then parts of it will be clipped (scrollable of course).

Save Zoom State

Save the current zoom level and scroll bar offsets.

Restore Zoom State

Restores the zoom to the state saved with the above command. This is very useful if you wish to zoom in on part of the image, then zoom out to see the whole, then quickly zoom back to do some more close work.

Image menu

Image level commands and actions.

Scale Image

Brings up the Scale Image With Contents script

Layers Menu

Layer manipulation actions.

Import Layer

Import an image via the datatypes system and add it to the current project.

Export layer

Export the currently active layer as a 32bit ILBM

Add Alpha Channel

Creates an Alpha channel in the active layer, but does not other wise change the image

Colour To Alpha

Remove the current background colour from the image and replace with transperancy

Selection To Alpha

Creates an alpha channel from the current selection mask

Remove Alpha Channel

Removes the alpha channel from the active layer, and replaces it with the current background colour

Paths Menu

Path manipulation and loading saving etc.

Load Path

Load a path from disk, make it the active path

Save Path

Save the active path to disk

New Path

Start the path editor with a fresh path

Edit Active Path

Start the path editor, with the active path

Fill Active

Fill the active path with the foreground colour, operates on the active layer

Stroke Active

Stroke the active path with the current brush

Window Menu

Window manipulation Actions

Toggle Tools

Toggle Laters

Toggle the open and close state of the Tool and Layers windows

Snapshot Windows

Snapshots the positions of the active project, tools and layers windows

Presets

Create and select presets

Make Preset

Brings up a ProAction based requester to enable you to create a preset from the current tools settings. You may choose which settings you want restored when the preset is selected.

Preset list...

A list of currently available presets. Presets are stored as mini ARexx scripts that set the required state.

Palette

Vreate a load / save palettes.

New Palette

Creates a new empty palette and adds it to the application palette list as the active palette.

Load Palette

Load a palette from a file, makes it the currently active palette

Save Palette

Save the current palette to a file

Add To Palette

Adds the current forground colour to the end of the current palette

Misc

Select and remove input wedges and other miscellaneous scripts. These are script based plugins that add significant functionality to SketchBlock.

Lines

Draw Straight Lines with the current brush

Boxes

Draw rectangular boxes using the current brush and paint tool settings.

Curves (new for 1.8)

An advanced plugin that allows you to draw bezier curves using the current brush.
The plugins is controlled by the mouse /tablet and the keyboard
Keyboard controls are as follows

N -- Start a new curve. Stroke the mouse after pressing N to define a new starting curving

SPACE -- Stroke the current curve

S -- toggle size fading

C -- toggle colour fading

O -- toggle opacity fading

H -- toggles hardness fading

ESC -- quit plugin

Mouse controls:
Click and drag mouse near the controls points (shown as dots) to move the ends of the curve and adjust its shape

Circles (new in 2.5)

CTRL click to set the centre then drag to swet the size of the circle. Press SPACE to stroke with current brush or SHIFT SPACE to fill with the current colour.
Under the bonnet this script uses a path to simulate a circle, this is not 100% accurate but for most uses you'll hardly detect the difference.

Filled Boxes (new for 1.8)

Another advance plugin, this time with a ProAction GUI. It allows you to draw boxes, which may be filled, the outlined may be stroked with the current brush, the corners maybe rounded. etc etc.
The location of the box id shown by dotted lines in the sketch window. It can be positioned via the GUI or by dragging the edges with the mouse. When working in the sketchwindow press "D" to draw the box or "C" to cancel.
Or press the corresponding gadgets in the GUI window.

Copy Box

Coppies a rectagle in the active layer into a new layer. Just drag the mouse to select the area. This is a one of wedge, it removes itself after a completed copy.

Move Layer

Left click on the active layer and drag to it's new location then release

Scale Layer

Allows you to resize tha active layer. Use the mouse to resize the layer by dragging the edges or corners and press RETURN or SPACE to scale or ESC to quit

Remove Wedge

Removes the currently active input wedge.

Convolution Menu

Convolution actions.

emboss

Perform an emboss convolution of the active layer

deep

This convolution creates the illusion of a deep chiselled effct

gaussian

Apply a gaussian blur to the whole active layer

Horizontal Sobel

Apply sobel edge detecion in the hosrizontal direction

Vertical Sobel

Apply sobel edge detection in the vertical direction

Full Sobel

An advance script that combines the above two actions. The script itself
performs extensive calculations using the READPIXELS and WRITEPIXELS functions to access layer data.
Can create a cartoon like effect depending on the image, but will be slow on larger images. Be patient!