home *** CD-ROM | disk | FTP | other *** search
-
-
- !SwiftJPEG copyright Hipposoft 1995
-
-
- An Impression Junior format version of this file
- file (created with version 1.19, which was given
- away on the November 1995 Archimedes World cover
- disc) can be found in the 'Manual' directory. It
- does not include any extra pictures etc., but is
- more attractively formatted than this text version
- and is consequently easier to read. It should load
- into Junior v1.19 or later, Impression II if dated
- 12-Jan-1992 or later, or any version of Impression
- Style or Publisher (tested with Publisher v4.01).
-
- SwiftJPEG uses Acorn's new SpriteExtend module from
- RISC OS 3.6 to allow access to the extremely fast
- JPEG display facilities of the operating system.
- Because the SpriteExtend module creates a 'Dynamic
- Area', a concept that did not exist before RISC OS
- 3.5, this application will only work on Risc PCs.
- It is useful because although !Paint and !Draw will
- both load JPEGs, they have major drawbacks for
- general viewing, described below.
-
- If you wish to try out the various facilities
- described below as you read the file, the 'Images'
- directory containing 100 JPEG files that will have
- been supplied with your machine on the hard disc
- (A7000-Net excepted) is an ideal source of files.
-
- Please now read the 'DISCLAIMER and credits'
- section towards the end of this file before
- proceeding further.
-
-
- ** Usage
-
-
- Double-click on the !SwiftJPEG icon to start the
- application. To load a JPEG picture, either drag it
- to the icon on the icon bar, or double-click on it
- (the latter will only work if no other applications
- that load JPEGs by double-clicking, such as
- ChangeFSI, were loaded first). The JPEG file will
- be displayed in a window on the Desktop. This
- window has all or part of the pathname of the
- picture you loaded displayed in its title bar,
- and is refered to below as the Display window.
-
- If you change colour depth, resolution or Desktop
- scaling the display will be updated accordingly.
-
- SwiftJPEG can also be launched in the usual RISC OS
- manner, by double-clicking on a JPEG file or
- dragging a selection of them to a blank part of the
- icon bar, provided another application (again such
- as ChangeFSI) which claims the same filetype hasn't
- been run or 'seen' by the filer after SwiftJPEG.
-
- Since SwiftJPEG offers no editing facilities, it
- wasn't thought necessary to give it the capability
- for multiple views - that is, you can only look at
- one JPEG at a time. Multiple copies of SwiftJPEG
- can be launched if you really need to see several
- files at once, though this has a few important
- complications described later.
-
-
- ** !Draw and !Paint
-
-
- Why not use !Draw or !Paint to view the JPEG files?
- !Draw has two drawbacks. Firstly, it has a default
- page size of A4; many JPEG files are bigger than
- that, so to see the whole file you need to use
- !Draw's menu to increase the size. Secondly, it
- uses a fast but inaccurate dithering routine (see
- later for more information about dithering) which
- gives poor results in 256 colour modes.
-
- !Paint uses better dithering, but turns the JPEG
- into a sprite (out of necessity). This often
- requires a lot of memory.
-
- SwiftJPEG offers a choice of dithering methods
- including the better method that !Paint uses, a
- choice of ways to display the picture, and it keeps
- the JPEG file as a JPEG, thus requiring
- comparatively little memory.
-
-
- ** Menu items
-
-
- There is only one main menu, accessible from either
- the displayed picture or the icon bar. The entries
- are:
-
- 1. Info - Move the pointer to the right to see the
- application's Info window.
-
- 2. Zoom - Move the pointer to the right to show a
- standard 'Zoom box', through which you can
- change the magnification applied to the
- displayed picture. If you use the arrow icons,
- then the picture (if one is displayed) will be
- scaled immediately; else you can enter values
- via. the keyboard and the scaling is only done
- when you move from one writable icon to the
- other, or press Return. Any scale factor set in
- this window when a picture is not being
- displayed will apply when you next load one.
-
- 3. Picture - Move the pointer to the right to show
- a window giving information on the picture being
- displayed. If there is no picture loaded, this
- item will be greyed out.
-
- 4. Full Screen... - again this is greyed out if
- there is no picture loaded. With a picture
- loaded, select this item to plot the picture in
- the middle of a black screen. Press a key or
- click any mouse button to get back to the
- Desktop.
-
- 5. Choices... - Select this menu item to open the
- Global Choices window, described below.
-
- 6. Quit - selecting this item quits the
- application, closing the Display window and
- releasing any memory claimed by SwiftJPEG
- itself. Note however that the SpriteExtend
- module is obviously *not* removed when you Quit
- and any memory in Dynamic Areas or the RMA that
- the module may have claimed will, consequently,
- still be in use.
-
- When you first load a JPEG file you will notice
- that the Display window appears centered on the
- screen and as large as it can get. Loading a new
- picture when that window is still open will then
- display that picture in the same window, without
- re-centering it or altering its size (unless the
- new picture is smaller than the window displayed).
- This is to allow 'browsing' where a filer window
- with a group of pictures is placed next to the
- Display window; there's nothing more annoying than
- having to keep moving the Display window out the
- way because it puts itself back in the middle all
- the time (as in ChangeFSI)! If you close the
- Display window, however, before loading a new
- picture, then it *will* be opened to maximum size
- and placed in the center of the screen, just as
- when you load a picture for the first time.
-
- Closing the Display window with the Adjust button
- rather than Select will re-open the Filer window
- from which the picture was loaded, if it is not
- already open. To open the Filer window but not
- close the Display window, hold down either Shift
- key and click on the close icon with Adjust (this
- behaviour is standard amongst many RISC OS
- applications).
-
-
- ** Global Choices
-
-
- The Global Choices window is divided into three
- sections; Dithering, Full Screen and Miscellaneous.
- These are described below. Note any changes you
- make in the window only take effect when you click
- on the 'OK' icon (see below).
-
- 1. Dithering
-
- This allows you to set the dithering options.
- Dithering is a process where, in the event that a
- particular colour in the picture is not available
- for display on the screen (for example the standard
- Desktop 16 colour palette doesn't include brown),
- the computer will use speckled arrangements of
- colours to create a 'mixing' effect and try to
- represent the colour. For example if orange wasn't
- available, a speckled pattern of red and yellow
- might be used, or green and red to give brown.
-
- This process slows down the plotting process of the
- image by varying degrees, hence it can be turned
- off by selecting the 'None' icon. Alternatively, a
- fast (and inaccurate) or a slower (but more
- accurate) method can be used. If you are displaying
- the picture in anything other than a 256 colour
- (not 256 greyscale!) mode, there will be no visible
- difference or speed difference between the two. For
- 256 colour modes there is a big speed difference,
- but the image quality of the faster option is
- fairly poor (yet still better than with no
- dithering). By default the slower option is on
- because it gives a better quality image.
-
- In a 16 million colour mode, the dithering setting
- is irrelevant and is ignored because the computer
- can display all the colours that it is possible to
- store in the JPEG file.
-
- You may notice that in 16 colour modes, the image
- is displayed in greyscales even though eight
- colours as well as eight greyscales are available.
- This is perfectly normal but cannot be changed (it
- is a function of the SpriteExtend JPEG routines
- themselves, rather than something SwiftJPEG is
- doing).
-
- 2. Full Screen
-
- When you display a picture Full Screen using the
- 'Full Screen...' menu option, how does SwiftJPEG
- decide which screen mode to display it in? This
- section allows you to choose.
-
- If you ensure that *none* of the three options in
- the section is selected (by simply clicking on the
- currently selected option, which will 'unselect'
- it), then whatever mode you are using in the
- Desktop will be used to display the picture. This
- basically allows you to pick specific modes to see
- what pictures look like in them.
-
- If you select 'Best fit to picture' (this is
- selected by default) then a screen mode larger
- than, but of closest size to, the picture you are
- viewing will be selected. This consequently
- maximises the displayed size of the picture on the
- screen. The greatest colour depth available for
- that resolution will be selected, but size takes
- precedence (i.e. a 1500x1120 pixel picture would be
- displayed in a resolution of 1600x1200 pixels, even
- though there will be other resolutions that allow
- more colours on screen at once). This is a useful
- 'general purpose' method.
-
- The 'Use biggest' method scans the modes available
- on your system and chooses the highest resolution
- one, regardless of colour depth, and always
- displays pictures in that resolution. So on a 1Mb
- VRAM machine it would choose 1600x1200x16 colours
- (if a 1600x1200 mode is defined on your machine),
- or on a 2Mb VRAM machine it would choose
- 1600x1200x256 colours.
-
- The 'Use most colourful' method scans the modes
- available and chooses the one with the largest
- number of colours available (picking the highest
- resolution mode from that set). So on a machine
- with 1Mb VRAM it would choose 640x480x16 million
- colours, on a 2Mb VRAM machine it would choose
- 800x600x16 million colours.
-
- 3. Miscellaneous
-
- When you load a JPEG file, it is displayed in a
- window on the Desktop. If you want to automatically
- display the picture in Full Screen mode as soon as
- you load it, select the 'Show JPEG in Full Screen
- mode on loading it' option.
-
- When you return to the Desktop after a Full Screen
- view, the Display window will be present and if it
- wasn't already, will have opened itself up to full
- size and centered itself on the screen. This
- resizing and positioning operation is unavoidable,
- but may be irritating in some circumstances. To get
- round the problem, select the 'Close Display window
- after Full Screen view'. This will, as it suggests,
- close the Display window - *and remove the picture
- from memory* - after a Full Screen view (so no
- picture will be being displayed when you return to
- the Desktop).
-
- When you are using the 'Use biggest' or 'Use most
- colourful' options of the Full Screen section (see
- above), you will notice a small delay when before
- the picture appears the first time you use the
- option after starting SwiftJPEG. This delay is
- caused by SwiftJPEG having to work out the biggest
- or most colourful mode available on your system. By
- default, SwiftJPEG waits until it is actually asked
- to use one of these display methods before doing
- this check, to avoid increasing the time it takes
- the application to start up. You may want to ensure
- SwiftJPEG does this check on startup so there are
- no delays later on. In this case, select the 'Work
- out maximum screen modes at startup' option.
-
- Once SwiftJPEG has worked out the biggest and/or
- most colourful mode, it doesn't do it again. If the
- list of available modes changes whilst SwiftJPEG is
- running (e.g. because a new Monitor Description
- File was dropped onto the Display Manager icon) it
- will *not* notice this change, and will need
- restarting if you want it to notice any new modes.
-
- There is a similar delay to that described above
- with the 'Best fit to picture' option in the Full
- Screen section. Here, SwiftJPEG is scanning the
- list of modes for one that best fits the picture.
- Because each picture is different, SwiftJPEG must
- do this check every time, hence there will always
- be the short delay.
-
- The presence of some modes is ignored by SwiftJPEG,
- when it comes to Full Screen display. Modes where
- th y-size is bigger than the x-size (e.g. 240 x
- 352) are ignored because they are considered of
- unusual aspect ratio (the picture would appear
- distorted on-screen, 'letterbox'-type display
- accepted). Modes where the y-size is less than half
- the x-size (e.g. Mode 12 resolution of 640x256) are
- also ignored, to make sure a square pixel display
- is present (again to try and avoid the picture
- looking distorted on screen).
-
- At the bottom of the General Choices window are
- four buttons; from left to right:
-
- 1. Save
-
- Clicking on this icon Saves the current choices, as
- they appear in the Global Choices window, to disc.
- It is necessary to click on OK (see below) to make
- these choices apply to the rest of the application.
- You cannot 'undo' a Save, e.g. clicking on Cancel
- (see below) will not effect the Saved choices at
- all.
-
- 2. Default
-
- This sets the options in the window to their
- default (original) state - Slow dithering, 'Best
- fit to picture' Full Screen method, and all
- Miscellaneous options turned off.
-
- 3. Cancel
-
- Clicking on this icon returns the options to the
- state they were in when you opened the Global
- Choices window with the 'Choices...' menu item.
- If you click with Select the window will also
- close. Click with Adjust if you want it to remain
- on screen.
-
- 4. OK
-
- Clicking on this icon reads the options from the
- Global Choices window and applies them to the
- rest of the application. If you have altered the
- Dithering methods and a picture is currently being
- displayed, it will be redrawn with that new method.
- When you click on this icon, the Global Choices
- window is closed regardless of which button is
- used. Clicking on OK does not effect the choices
- Saved on disc.
-
-
- ** Loading groups of files
-
-
- If you drag a group of files to SwiftJPEG's Display
- window or icon bar icon when the 'Show JPEG in
- Full Screen mode on loading it' option is turned
- off, each picture will be loaded in succession but
- because SwiftJPEG can only load one file at a time,
- after all the disc activity has died down, you'll
- be left looking at the last picture in the group
- you selected.
-
- However, a 'slideshow'-style arrangement can be
- achieved by setting the 'Show JPEG in Full Screen
- mode on loading it' option in the Global Choices
- window. Each picture will be loaded and displayed
- in succession. Press any key or click any mouse
- button during this to show the next picture. Note
- that pressing Escape has the effect of ignoring the
- rest of the pictures in the group, and goes back to
- the Desktop. Care has been taken to minimise
- changes of display resolution during this process -
- i.e., there is as little flicker as possible.
-
-
- ** Running several copies of SwiftJPEG
-
-
- If you have several copies of SwiftJPEG in
- different places, it is 'safe' to run them at the
- same time. Any choices Saved from the copies will
- be saved within the correct application directory,
- not the one which was last launched as can happen
- with some other applications.
-
- If you run the same copy on disc several times,
- saved choices from each copy will obviously effect
- the same copy. Each copy will *not* notice any
- changes to the Saved choices made by another.
-
- Regardless of where the copy was launched from,
- setting the Choices in any one copy will not
- effect the Choices set in any other.
-
-
- ** Handling Errors
-
-
- The SpriteExtend module is less tolerant of badly
- defined or fairly non-standard JPEGs than, say,
- ChangeFSI. Some JPEGs, then, will load but not be
- displayed or may show odd traits such as only
- redrawing partially. This does not for example
- occur with any of the JPEGs supplied on the hard
- disc of a new Risc PC, and is not a fault of either
- SwiftJPEG or the SpriteExtend module in a strict
- sense; the problem lies more with the file itself.
- You will know if this has happened according to the
- details below:
-
- If there is not enough memory to load a picture
- into SwiftJPEG itself, nothing will happen (no
- message is given to say this has happened). So if
- you drop a JPEG onto SwiftJPEG and no window opens,
- check there is enough memory (you'll need the size
- of the JPEG file plus another 8K on top of the slot
- size claimed by SwiftJPEG when it has no picture
- loaded).
-
- The SpriteExtend module creates a Dynamic Area the
- size of which can be altered by the user. The
- amount claimed depends on the size of the JPEG
- displayed. It can be set to 0K (or any other
- arbitrary size constrained only by the amount of
- free memory) by the user and is automatically
- increased in size by the SpriteExtend module as
- required. If enough memory is present to load the
- JPEG file into SwiftJPEG, but there's then not
- enough workspace for the JPEG module, again nothing
- will happen (all errors from the JPEG plotting
- calls are ignored). So if you get a window open but
- nothing plots, check there is some memory free.
-
- If the window opens but nothing plots and there is
- plenty of memory free then the JPEG file is at
- fault.
-
- All other errors, e.g. if you run SwiftJPEG from
- floppy disc, try to save the options with the
- floppy disc out of the drive and refuse to supply
- it when prompted, are treated as fatal. SwiftJPEG
- will report the error and quit when you click on
- Cancel in the error box.
-
-
- ** Contact addresses
-
-
- Home address:
-
- Andrew Hodgkinson
- 91 Micawber Road
- Poynton
- Stockport
- Cheshire
- SK12 1UP
-
- Mail may have to be forwarded from this address to
- actually reach me, so please be patient.
-
- EMail and telephone numbers are liable to change in
- (at the time of writing) the near future. You can
- use the EMail address adh1003@hermes.cam.ac.uk
- until around June 1996. This is a university
- address; if I am not present at univeristy when you
- mail, an automatic reply giving details of how to
- contact me should be sent to you. If the address is
- reported as not existing, I've left university and
- my account on the university mail server has been
- removed; contact me by the postal address above.
-
-
- ** DISCLAIMER and credits
-
-
- 'The software' or 'This software' refers to the
- !SwiftJPEG application and any related files
- distributed with it, including this manual in all
- its formats.
-
- This software is supplied 'as is'; Hipposoft makes
- no claims as to its reliability or suitability for
- any purpose. No responsibility can be taken for any
- failure of the software, or any loss or damage
- caused directly or indirectly, or not caused, by
- the software.
-
- Contents of this manual are not guaranteed to be
- correct, and may change without notice.
-
- The SpriteExtend module is Copyright of Acorn
- Computers. This application was only tested under
- RISC OS 3.6 since saving out a copy of the
- SpriteExtend module via. the *Modules and *Save
- commands on a RISC OS 3.6 machine and loading this
- into a RISC OS 3.5 machine would be a breach of
- that copyright, and may not work (though apart from
- that there is no reason why SwiftJPEG would work
- any differently under either version). You may NOT
- use SwiftJPEG under such conditions. Hipposoft
- takes no responsibility for any such actions taken
- by end users of this software for any reason.
-
- Thanks to Ragnar Hafstaư for !BasCrunch v1.02 (and
- Dick Alstein who did the front end), which was used
- to compress the original BASIC source.
-
- This software is Freeware, and must be distributed
- intact, with all the files present and in the same
- form as received by the end user. If being
- distributed in any profit-making way, permission
- must be granted by Andrew Hodgkinson of Hipposoft
- first. If you are distributing the software in some
- non-profit making way, I (Andrew Hodgkinson) would
- prefer it if you contact me just to say what was
- being done with !SwiftJPEG, though this is not
- compulsary.
-