                     David Pilling's Scanning Software
                     =================================



Release 1.25 - 14th April 2010
=================================
Recompile for ARM v7 architecture.



Release 1.24 - 22nd. January 2008
=================================
Fixed problem with PNG files with very high resolutions.



Release 1.24 - 20th. January 2007
=================================
Fixed problem with Windows bitmaps with bit fields compression.



Release 1.24
============
Fix crashing when using shear on Iyonix.

Improved numerical accuracy of Colour->Balance window. Also changed satuation
slider to work in more sensible way (choosing -100% now removes all colour).


Release 1.23
============

Increase view name max length to 256 bytes.

Stop crashing with sprites that contain an alpha channel.

Updated TIFF code. Can now handle CMYK TIFF files.

Resize settings now saved with choices.


Release 1.22
============

Fix problem with some paletted TIFF files.

Fix problem with 16 and 32bpp BMP files.


Release 1.21
============

Various bug fixes.


Release 1.20
============

Improvements made to alias filters. It was observed that a small scale
factor (say 85%) with some simple filters (e.g. box) led to artifacts in the
scaled image.

The same fix as in the TWAIN driver filter code has been added to DPSS.


Release 1.19
============

There was a bug where filenames over about 128 chars lead to a crash after the file
was saved.

System variable DplngScan$Memory added to !Run file. 

A value of -2 forces DPSS to use its wimp slot for memory instead of a
Dyanamic Area. This is a good idea on RISC OS 5. 

A positive value sets the maximum size of Dynamic Area that DPSS will claim.
Note this is an amount of address space, not allocated memory. However since
you can never use more memory than address space it does set a limit on the
maximum amount of memory DPSS can ever use.

A value of -1 gives the previous default behaviour of claiming a Dynamic
Area with a size equal to all the memory in the machine.

The memory settings in DPSS choices still take precedence. So if DPSS
choices shows a max memory value of 8MB setting a max address space of 512MB
in !Run will still result in a memory limit of 8MB.



Release 1.18
============
Compiled for 32 bit machines.


Release 1.17
============
Program's desktop name changed to DPlngScan


Release 1.16
============

If an attempt to load an image ends with an error, and another image
is dropped into the window a crash will result.

Fixed.

Clicking on the X Y buttons in the Shear window could lead to a crash.

Fixed.

Image Info windows are created but not deleted.

Fixed.

Problems occuring opening the 'virtual memory' scrap file are not
handled correctly.

Fixed.

Doing a format conversion where the destination is 16bpp and FS ZigZag is
used results in corruption.

Fixed.

Sometimes the Image Info window would not appear due to having a bad
window handle.

Fixed.


Release 1.15
============

If there were too many user defined filters a crash resulted. Fixed.

Increased space in writable entry on resolution menu in page choices to 5
digits.

If a view is showing an image frame other than the first and a new view
is opened a crash resulted. Fixed.

Improved the mapping of colours between palettes. This will affect a number
of things - one example using the balance window on grey scale images.

Made the histogram display more accurate.

EPS saving has been extended to support CMYK, nb. only when the main image in
the EPS is not JPEG'd - see the EPS configuration window.

Fixed bug where loading a Draw file with no sprites in produces a 'No Printer
Driver' error message.

Improved colour mapping when printing, for example previously a 256 shade of
grey image would appear posterised when printing to a colour printer.

GIF files which contain more than one frame are not loaded correctly. Fixed.

In the convert format window it was possible to use the bump button to go
below 1bpp. This still showed as 1bpp but could lead to a crash. Fixed.

Ico files have a maximum width of 255 pixels. An error is now raised if an
attempt to exceed this is made.

New 'explode' feature. If control is held down when a save from a multiframe
file is made, the name in the save box is used as the name for a directory,
and each frame is saved inside it using the frame name and the current save
type. A multiframe file is something like an Acorn Sprite file (GIF, ICO)
which contains more than one image.

Improved accuracy of image redraws (if you took an image, set the zoom
to 101% then cropped an area, the rectangular selection shown was unlikely
to match the displayed image).


Snapper 1.06

There is a bug where snapper will report not enough memory when there obviously
is enough memory. This is fixed.

There is another problem which contributes to the above bug, the RISC OS
routine for saving the screen as a sprite, generates sprites with left hand
wastage. This is fair enough, however recent versions of RISC OS do not
correctly support left hand wastage sprites. Snapper now removes the
wastage, so your sprites will behave correctly and will use as little memory
as possible.




Release 1.14
============

Updated to JPEG lib 6b. Faster. Support progressive JPEG's. 
Support CMYK JPEG's - so you can now convert between CMYK JPEG's and Sprites.

Fine tuned icons for RISC OS 4 - thanks to John Ferguson.

Removed Sprinter (print direct to sprites) from disc because it won't fit.
Now available from my web site...


Release 1.13
============

BMP and Ico files which are saved from a 2bpp original were corrupted during
the conversion to 4bpp - fixed. (BMP and Ico do not support 2bpp).

Ico files with transparancy must have one palette colour which is black,
now use this index correctly. Previously index 0 was always used.

Stepping through the images in one file immediately after another file has
been loaded results in a crash - fixed.

BMP loading updated for 16 and 32bpp images, and top down images added.

Updated zlib and pnglib code to versions 1/1/3 and 1/0/3 respectively. Gives
some increase in performance.

Fix some print related error messages which were not being translated.

Added a button to the Choices Window dialogue box which allows the setting of
the default print margin view option to be changed.




Release 1.12
============

Added writable icon for number of levels used in Histogram filter dialogue
box. Menu over this window opens a save box which can be used to save the
Histogram data as a text file.

Allow loading and resaving of CMYK Sprites - there is no other support for
CMYK images.

Added loading and saving of Windows .ico Icon files. Icon files do not save
resolution data. They do have masks. Icon files typically will contain more
than one version of an image. You can step between these using the page
arrows on the info palette.

Added support for images with masks (i.e. transparency) also known as alpha
channels. All operations should either preserve the mask (e.g. changing
image brightness) or when appropriate modify it correctly (e.g. rotating an
image, should rotate the mask).

File types which have mask support implemented are; sprite, .ico and GIF.

In GIF files transparent pixels are represented by one of the colours in the
image palette. So for example if you have a 256 colour image with a mask,
one of the colours must not be used by the image so that it can be used for
transparent pixels. If all 256 colours are in use by the image, then the
mask data will be ignored when saving the GIF file.

A new button has been added to the palette window - mask, this is the
strength of the mask which is applied to new pixels created, for example when
an image is rotated. The idea is similar to that of the background colour on
the palette window.

The mask value is taken from the tint slider. As with other colours clicking
with Adjust sets the value. A value of 100% (white) means that all the
brightness comes from the image (solid), a value of 0% (black) means that the
all brightness comes from whatever the image is rendered on (transparent).



Release 1.11
============

Added SPrinter archive - printer driver that renders sprites.

Fixed problems printing to CC Turbo drivers.

Fix BMP RLE8 file loading problem

Added option to save as Draw file. This is useful because Draw files
effectively retain resolution data, unlike sprite files. So Draw is a format
you can use on RISC OS which will preserve image sizes.

Added ability to load Draw files. Do note that this option allows you to 
step through the Draw file and load any sprites in it. It does not convert a
Draw file into a sprite - if you want to do that, use SPrinter.

Fix problem when a frame from a multi frame file is saved, and then an
attempt is made to load another frame.

Increase buffering on TIFF and JPEG file load/save.




Release 1.10
============

Fixed some memory leaks.

Fixed problem with virtual memory crashing on large images, when free space
in scrap file exceeded 16Mb.

Added Legal, Letter and Tabloid paper sizes to page size menu.

Fixed mix-up of units on view and page units menus.

Fix problems with GIF's



Release 1.09
============

Added support for the PNG file format. This uses Zip deflation data
compression. It can sometimes offer much better compression than e.g. LZW
TIFF's on 24bpp images. Compression is lossless. The file format
supports resolution data.


Added Cancel buttons to some windows.


Expression Evaluator
Now in any icon where you type a value, you can type in an expression.
For example;

10+20
6*2.123

Operator precedence is

unary +/-
( and )
/ and *
units and %
+ and -

More advanced examples;

100mm+10%

5/6" here " is short for inch, but the interesting bit is that the
value of this is (5/6) inches and not 5/(6 inches).



New units supported
-------------------

didot         di, d, D
cicero        ci, CI
foot          ft, '
yard          yd

The didot is the equivalent of the point outside the UK and USA.
There are 12 didot's in 1 cicero. A point is 1/72nd of an inch.
A didot is 0.0148 inch or about 1/68th of an inch





Release 1.08
============

Encapsulated PostScript export has been enhanced. The EPS configuration
window provides options for a preview image and for saving the main image
data as an embedded JPEG.

The preview section allows the main scale and change format
windows to be used to generate the preview image. Good settings are 
probably a preview of size 20% at 8bpp with an optimised palette. The
preview image can either be a TIFF file, glued on to the start of the EPS
file - this is PC/DOS style, or in a truly platform independent form (EPSI)
coded as hex in comments in the EPS file.

Remember that the current TIFF and JPEG configurations will be used for the EPS
file - you may want to use TIFF's with no compression.


Acorn palette files can be drag and dropped into an image window. The
palette file will overwrite the palette of the image.


It is now possible to have a directory 'Resources.Palettes'. Palette files
in this will appear as destination palette options in the 'Change Format'
window. One palette file suitable for 'Netscape' is supplied.


A new variable has been added to the !DPlngScan.Resources.Config file -
'ChunkSize' sets the size of the blocks of memory used by the
virtual memory system. Older versions used 32K. Making this value too small
or too big will result in excessive swopping of disc and RAM. A reasonable
value is probably between 32K and 512K, with the maximum value dependent on
the amount of available RAM.


Various small bugs fixed.



Release 1.07
============
All programs recompiled for Strong ARM.
Program now uses a dynamic area for its memory on RISC PC's - should be
more responsive on non SA RPC's when using a lot of memory.




Release 1.06
============
Added 'Modes' file to Resources directory. It is a common problem to find
that sprites which you want to load have been created in some odd loadable
(soft) screen MODE which you do not possess. The Modes file allows you to
enter definitions for these MODE's.

Fix problems with loading CC colour card sprites.

Add Encapsulated Post Script (EPS) export.



Release 1.05
============
Add button "Save in old format" to Sprite sub configuration window.
When selected this will force all images with more than 8bpp to
be saved in 8bpp format. The conversion will be done with the current
Change Format settings.

A new variable has been added to the !DPlngScan.Resources.Config file -
PollCount controls how often the program will give control back
to the desktop. The reason for this, is that on the RISC PC,
polling is slow, and scanning can be a lengthy process if other
tasks are running. By increasing PollCount you can reduce this affect.

PCX, BMP, GIF, MTV, PBM and Clear configuration windows now allow
default resolution to be set. This is the resolution in dpi which
will be initially given to images of these types. Usually 90x90 or
90x45 dpi.

Further fiddling with RLE BMP's.

Add new templates and sprites.

Recompile with Cv5 - some speed gains on JPEG's etc.


Release 1.04
============
Enable 24 bit colour printing.
Redesign info palette with buttons for undo, redo and scan.
Improve some sprite designs.
Fix assorted bugs.
Support for 3 pass colour scanners.

Added reverse filter operation to colour menu. This reverses the effects of
putting an image through a colour filter. Imagine you had taken a photograph
through a coloured filter, then this option would undo the effects of the
filtering, producing an image that looked as if no filter had been used.
The practical use for this is processing scans of colour negatives. 
This is what you should do with a colour negative scan.
(1) Open the colour palette and click on the film background, using the
Select tool and with SHIFT pressed. Set the colour tint/strength to 100%.
Finally click on the foreground colour icon with Adjust. You have now set
the foreground colour to the same colour as the negative film.
(2) Use Reverse filter from the colour menu.
(3) Use Invert from the filter menu.
Your colour negative is now developed.
Scanning at high brightness will help get better results, as will applying some gamma
correction.


Release 1.03
============
Implement code for new 16 and 32bpp screen modes.
Allow default resolution for GIF files to be set.



Release 1.02
============
Implement undo/redo. The number of steps you can undo is set from the
general configuration window. Undo/redo appear on the File menu.
As usual in RISC OS, you can also use F8 and F9.
Fixed numerous problems with TIFF files.



Release 1.01
============
All the programs now have two sets of templates. 'Templates' are 3D style
suitable for RISC OS 3, whilst 'Templates2' are 2D style for RISC OS 2.
Which set is used depends on a system variable programname$Templates, e.g.
Trace$Templates. By default this is set in the programs !Run file to
the correct setting for the OS. You can however change this, for
example if you want to force the use of 2D templates on RISC OS 3.

Made program work under RISC OS 2, by adding Sprites2 file to
resources directory.

Fixed various minor bugs, including Windows RLE BMP files.

Added John Fergusons new templates to all programs.
            

Addenda
=======
The 'crop' entry on the Edit menu, will reduce the size of the image to that
part of it which overlaps the rectangular selection. Similarly the 'extend'
entry will make the image large enough to fill the rectangular selection.



RISC OS 2.00
============
The current version of the program will not work with this. A version which
will work is available upon request.






(c) Copyright David Pilling 2005.

