The latest version of this document can be found at www.broad.ology.org.uk/amiga/sketchblock/index.html

SketchBlock 3.4 - Digital Sketching For The Amiga

Welcome

Here we are at release number 3.4.

It's now well over eight years since I started coding SketchBlock. The first release being on the 30th January 2012, coding starting in the autumn of 2011, and I am now proud to announce the fourth update to SketchBlock Professional Edition.

Now at over 110,000 lines of code this is major step forward for SketchBlock, introducing new features and significantly enhancing existing ones.

See the Changelog for a complete list of changes and read on for an overview.

SketchBlock is a powerful digital painting package for AmigaOS 4.1, offering smooth, responsive tools to create images in High Dynamic Range colour.

Version 2.6 remains available from Download From OS4Depot and may be thought of as a basic demo, though the feature set has moved on way past this older version. The Version 3 series to be known as 'SketchBlock Professional Edition' will be available to purchase from the AmiStore for £15.00 plus VAT with a discount for registered users of 'SketchBlock Lite'.

Updates for 3.4

Improved editing and management of paths : There is now a tabbed section in the layers menu enabling you to switch between managing paths and layers, paths can be depth arranged, coppied deleted and renamed in the same way as layers can.

: There is now a tabbed section in the layers menu enabling you to switch between managing paths and layers, paths can be depth arranged, coppied deleted and renamed in the same way as layers can. Tilt support: Support for stylus tilt has been added at both the application and paint tool levels. In the Paint tool the brush size can be controled via tilt and also the brush colour.

Updates for 3.3

Dynamic loading of brush data : The full set of brushes can use up to 100Mb of memory when loaded on startup, so now brushes are loaded on demand.

: The full set of brushes can use up to 100Mb of memory when loaded on startup, so now brushes are loaded on demand. Erase filter :. This allows erasing selected areas of layers to the background colour / transparent. This differs from the erase tool in that it enables scripts and subroutines to erase area 'en masse'. Some standard menu items using this function were added to the standard Edit menu. eg Erase selection and "Cut" selection.

:. This allows erasing selected areas of layers to the background colour / transparent. This differs from the erase tool in that it enables scripts and subroutines to erase area 'en masse'. Some standard menu items using this function were added to the standard Edit menu. eg Erase selection and "Cut" selection. Textures.: Drawing operations can now be modified by a texture. Any layer can be used as a texture, but a custom list of dedicated texture layers is also maintained. Some example textures cane be loaded via the new textures menu. Currently only the paint tool supports the texture operation, and this can be enabled via two new switches at the bottom of it's settings.

Updates for 3.2

Paint tool extended to add pressure sensitive stamp intervals allowing yet greater flexibility in brush stroke design. Works well with progressive mode

Extensions to the path editor. Individual polygons can now be moved, copied and scaled.

Snapshot windows now saves the weight bar values, enabling the tools and brushes areas to be set as desired

Added controls to vary paint stroke opacity from the key board whilst painting Z decrease X increase

Additional ARexx commands

Misc bug fixes

Major Features In SketchBlock Professional 3.1

High Dynamic Range or 32 bit colour

When setting up a project you can now choose between High Dynamic Range colour and standard 32 bit colour. The former allows the smoothest colour transitions, whilst the latter make better usage of system memory for those projects that don't need the full HDR treatment. HDR projects are slightly faster to work with as plugins and filters work in floating point HDR internally.

When setting up a project you can now choose between High Dynamic Range colour and standard 32 bit colour. The former allows the smoothest colour transitions, whilst the latter make better usage of system memory for those projects that don't need the full HDR treatment. HDR projects are slightly faster to work with as plugins and filters work in floating point HDR internally. Paging for larger projects

With todays modern image formats and sizes you can quickly run short of memory, especially when working in HDR. SketchBlock offers two ways to page the internal buffers allowing much larger projects to be loaded. Extended Memory Paging: Since AmigaOS 4.1 FE Extended Memory is available to allow applications to use memory from beyond the 2 Gb address space limit. SketchBlock can use this for fast paging. This is available on any AmigaOne machine with more than 2 Gb of memory. (CAVEAT: At AmigaOS 4.1 FE Update 1 on the X1000 the cfeide.device must be disabled for ExtMem to work correctly, this should hopefully be fixed in a later version of the OS). Disk Based Paging: On any AmigaOS 4 system disk based paging is available. Tiles of buffer memory are paged out to disk on a Least Recently Used basis allowing almost arbitrarily large projects to be created. Naturally this is'nt as fast as ExtMem paging but can be useful to load and scale down larger images for further work.

With todays modern image formats and sizes you can quickly run short of memory, especially when working in HDR. SketchBlock offers two ways to page the internal buffers allowing much larger projects to be loaded. Powerful Paint Tool

The paint tool has been extended to add many new features, as well as the previous pressure sensitive, blend modes, jitter and progressive modes, the updated tool adds modulation over the brush stroke, smooth stroke, constraining to straight lines, and integrates with the new colour picker tool.

The paint tool has been extended to add many new features, as well as the previous pressure sensitive, blend modes, jitter and progressive modes, the updated tool adds modulation over the brush stroke, smooth stroke, constraining to straight lines, and integrates with the new colour picker tool. New Colour Picker Tool

The colour picker tool now supports picking from the current layer or the merged project value, picking the alpha value and sample averaging over a given radius, useful when picking colours from noisier images.

The colour picker tool now supports picking from the current layer or the merged project value, picking the alpha value and sample averaging over a given radius, useful when picking colours from noisier images. Selection Tools

The selection tools remain basically the same but add the option to convert the alpha channel into a selection mask and vice verca.

The selection tools remain basically the same but add the option to convert the alpha channel into a selection mask and vice verca. Convolution Filters

SketchBlock Pro adds some new dedicated and optimised convolution based filters. Gaussian Blur: the classic blur function with variable radius Unsharp Mask: Another classic image process filter. Bilateral Filter: This one is a bit special, performing convolution in both the space and frequency domains, it allows to reduce noise in an image whilst retaining the contrast of edges. With extreme settings it might render a photograph in almost cartoon like way, or more subtly tighten that noisy photo where the light was bit low.

SketchBlock Pro adds some new dedicated and optimised convolution based filters. Plugin Based Importers and Exporters

New plugins allow the import of a wider range of image formats with much greater control, falling back to datatypes for import of currently unsupported images. Importers Open JPEG / JPEG 2000: Supports loading of 8,12 and 16 bit data and alpha channel Info: Loads direct mapped image data from Amiga Icons. Exporters Open JPEG/ JPEG 2000: Supports saving in 8,12 or 16 bits depth with alpha channel. JPEG: Traditional jpeg, with adjustable quality value PNG: Portable Network Graphics format with alpha support. ILBM: Supports saving with or without alpha, useful for exporting to applications like Wordworth that don't understand ILBM32 but do load ILBM 24 bits. Info: Save project into an icon. Project must have 1 or 2 layers of equal size less than 256 square. More formats are planned...

New plugins allow the import of a wider range of image formats with much greater control, falling back to datatypes for import of currently unsupported images. More formats are planned... More Example Scripts

The range od scripts to found in the REXX drawer and accessible from the menus has been increased. Most recent addition is the Add Glow. Combined with the above INFO importers and exporters SketchBlock is now your favourite icon editor.

The range od scripts to found in the REXX drawer and accessible from the menus has been increased. Most recent addition is the Add Glow. Combined with the above INFO importers and exporters SketchBlock is now your favourite icon editor. GUI improvements

New custom gadgets allow for easier window resizing when large numbers of brushes are loaded.

GUI improvements New custom gadgets allow for easier window resizing when large numbers of brushes are loaded. GUI Theming

You can setup themes for your 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.

You can setup themes for your 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. More to discover when you get stuck into Sketching...



Usage

SketchBlock may be start from either the shell or from Workbench SketchBlock creates an assign SketchPath: which allows ARexx etc to find scripts, and default scripts to save to the correct directory. 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 only in the case of an error.

Support Scripts

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

TAB - Toggles Tools windows.

- Toggles Tools windows. CTRL Z - Undo last operation

- Undo last operation CTRL Y - Redo last undo operation

- Redo last undo operation P - Set current tool to "Paint".

- Set current tool to "Paint". E - Set current tool to "Erase".

- Set current tool to "Erase". S - Swap foreground and background colours

- Swap foreground and background colours COMMA (',') - Decrease brush size

- Decrease brush size PERIOD ('.') - Increase brush size

- Increase brush size RALT COMMA (',') - Lighten foreground colour

- Lighten foreground colour RALT PERIOD ('.') - Darken foreground colour

- Darken foreground colour Z Decrease paint tool opacity

Decrease paint tool opacity X Increase paint tool opacity

Increase paint tool opacity LSHIFT 1 - Begin recording Macro

- Begin recording Macro RSHIFT QUOTE ('"') - Finish Recording Macro

- Finish Recording Macro Z Decrease paint tool opacity

Decrease paint tool opacity X Increase paint tool opacity

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

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 32 bit ILBM to the filename chosen or 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, and 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 provides 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 clipboard has an image in it! Clear Selection Clears the current selection, and disables the mask Invert Selection Inverts the current selection

Alpha To Selection Sub Menu

REPLACE Replace the selection entirely ADD Add to the current selection SUBTRACT Subtract from the current selection INTERSECT errm any guesses?

View Menu

Zoom SubMenu

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

Scale Image Brings up the Scale Image With Contents script

Layers Menu

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 32 bit 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 transparency 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

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

Toggle Tools Toggle Layers 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

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

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 foreground colour to the end of the current palette

Textures

Misc.

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 set 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 Copies a rectangle 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 the 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

emboss Perform an emboss convolution of the active layer deep This convolution creates the illusion of a deep chiselled effect gaussian Apply a gaussian blur to the whole active layer Horizontal Sobel Apply sobel edge detection in the horizontal 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!

The latest version of this document can be found at www.broad.ology.org.uk/amiga/sketchblock/index.html