BBC Micro Image Converter

From Retrosoftware

(Difference between revisions)
Jump to: navigation, search
(BBC Micro Image Converter - Updated diary)
(BBC Micro Image Converter - Updated diary)
Line 325: Line 325:
[[Image:colorize_image_macosx.png]]
[[Image:colorize_image_macosx.png]]
 +
 +
 +
''27th October 2008''<br>
 +
Added a 'tint image' function to the 'image processing' component.

Revision as of 15:25, 27 October 2008

Contents

BBC Micro Image Converter

License

This software is copyrighted freeware and can be used for commercial or non-commercial purposes.


Introduction

BBC Micro Image Converter was originally developed as a tool for converting images from the BBC Micro screen dump format to BMP format. After the release of BBC Micro Image Converter there was some interest from people for a tool that could convert in the other direction, i.e. from modern image formats to the BBC Micro.

Image2BBC (originally entitled Img2BBC) was developed initially as a plug-in module for BBC Micro Image Converter, but soon became its own entity as its feature set grew.

As of version 0.20 the two programs are now being amalgamated together, although much work still needs to be done for them to be integrated properly. Image2BBC is now under the BBC Micro Image Converter banner.

Discuss BBC Micro Image Converter
Report Issue / Feature Request


Electron User Group Review of Image2BBC 0.7: http://www.acornelectron.co.uk/eug/revs/dreamland/r-imag.html


Downloads

Image:Bbcimagecon020.png

BBC Micro Image Converter for Windows 0.20 beta
Latest "unofficial" release. See change log below.
Fri Jun 15, 2007 1:42 pm: http://www.dfstudios.co.uk/temp/img2bbc/Image2BBC.zip


Image:Bbcimagecon0772.png

BBC Micro Image Converter for Windows 0.7.7.2 beta
Last official release. Only converts from BBC Micro screen dumps to BMP.
Thu Dec 29, 2005 11:46 am: http://www.dfstudios.co.uk/archives/BBCMicroImageConverter.zip


Slideshow DFS disk images Based on images that have been converted using early, pre-0.8, releases of Image2BBC converter.
Sat Feb 10, 2007 9:11 pm: http://www.dfstudios.co.uk/temp/img2bbc/gallery.zip
Fri Jan 05, 2007 9:30 am: http://www.dfstudios.co.uk/temp/img2bbc/converted_images.zip

Just load either of the disk images into your favourite emulator and press Shift-Break to run it.


Sample Images

Some examples of images that have been converted from modern formats to BBC screen dumps using BBC Micro Image Converter:


Image:Cheetah.png Image:Seven.png

Image:Tmnt.png Image:Sth.png


Change Log

BBC Micro Image Converter 0.20 Fri Jun 15, 2007 1:42 pm
Activated the import BBC screen function, although this is presently unfinished. Renamed to BBC Micro Image Converter to reflect the BBC to image conversion functionality and future Mode 7 'teletext' conversion functionality. Reorganised the menus a bit. Added solarise function.

The import BBC screen function is still very buggy, primarily due to the limitations of the current GUI (the new one isn't ready yet!). To import an image you will need to set the screen mode to what you want first, then the image will be imported at that screen mode. From there you can treat the image more-or-less as normal.


Image2BBC 0.14 Thu May 31, 2007 3:36 pm
Added a QVGA (320 x 240) resolution option and two more dithering options. Reclassified Image2BBC as a beta release since it has been publicly available for some time now.


Image2BBC 0.13.2 Thu Mar 22, 2007 12:41 am
Minor bug fix (error in PPM loader).


Image2BBC 0.13.1 Wed Mar 21, 2007 3:29 pm
Added support for Amiga image formats (*.iff, *.ilbm and *.lbm), Windows cursor images (*.cur) and PPM files (currently untested). Minor bug fix in the new image loaders


Image2BBC 0.13 Wed Mar 21, 2007 12:50 am
Added support for GIF, WMF, EMF and ICO image formats (EMF currently untested as I don't have any images in this format). Extended the image file format filter to include .rle, .upi, .jfif and .jpe extensions. Added the Shiau-Fan dithering method and a modified version of it. Added some additional error checking. Fixed some bugs.


Image2BBC 0.12 Fri Mar 16, 2007 4:08 pm
Started rewriting parts of the code to allow for easier porting to other platforms. Completely rewritten dithering routines resulting in a reduction in executable size. Added the false version of the 'Floyd-Steinberg' dithering algorithm. Modularised the code resulting in a further reduction in executable size. Made some improvements to the histogram function. Made some general improvements and enhancements. Bug fixed a possible division by zero error in the Auto-Process Level routine.


Image2BBC 0.11 Sun Mar 04, 2007 11:22 pm
Added brightness, contrast and gamma controls. Also added a histogram function. Some changes made to the user interface (e.g. changing of 'Retain Aspect Ratio' to 'Stretch Image'). A few 'under the bonnet' refinements were also made.

Note that in the 'Brightness and Contrast' window I have not got around to putting in the individual RGB channels yet. The only option at present is the adjustment of all the channels simultaneously.


Image2BBC 0.10 Sun Feb 25, 2007 8:30 pm
Added auto-process image function which can help to lighten and darken images and can improve the colour as well. Also added image flip/rotate, colour inversion and convert to greyscale functions. Some optimisations were made to some of the dither routines. Removed the second auto-palette function in preparation of a newer improved routine. Lots of sections of the code have been rewritten and lots of bug fixes have been made.

There have also been some modifications done to the GUI in preparation for new features such as 'Brightness and Contrast...' and 'Show Histrogram' under the 'Image' menu, but these are currently ghosted out.


Image2BBC 0.9.1 Fri Feb 23, 2007 9:02 pm
Fixed the bug in the new image handling routines. The conversions are now completed in lightning quick time! New engine uses direct memory access to the images which is many times faster rather than working on them using standard image routines. For even the most complex conversion it is almost instantaneous rather than upto just over 6.5 seconds on my system for the previous routines.


Image2BBC 0.9 Thu Feb 22, 2007 10:24 pm
Added a basic toolbar and option to use NTSC screen resolutions (i.e. a vertical resolution of 200 pixels instead of 256). Converted images can now also be previewed at full screen. Facility to save converted images as BMPs, JPEGs or PNGs in addition to BBC screen dumps. Some more optimisations and general improvements in stability.

The image handling routines have been completely rewritten so that they are a lot faster than previous versions. Unfortunately there is a bug in them somewhere that mucks up the dithering algorithms so the new routines have been left deactivated for now.


Image2BBC 0.8.7 Wed Feb 21, 2007 1:37 pm
Fixed a couple of bugs that were introduced during the last update. Removed some redundant code.


Image2BBC 0.8.6 Wed Feb 21, 2007 12:24 pm
The bug with large images has now been fixed.


Image2BBC 0.8.5 Wed Feb 21, 2007 11:46 am
The bug with the loading large images on some systems is still present. Made some changes to try and fix this.


Image2BBC 0.8.4 Wed Feb 21, 2007 10:47 am
Changed the behaviour of the zoomed preview so that you can click on the image to close the window. Also made some changes to try and fix a bug that causes large images to fail on some systems.


Image2BBC 0.8.3 Tue Feb 20, 2007 6:42 pm
Added drag 'n' drop capability. Just drag the icon of a supported image file onto the Image2BBC window and it should load automatically.


Image2BBC 0.8.2 Tue Feb 20, 2007 1:25 pm
The screen resolution is now displayed above the converted image preview. Made some optimisations so that the converter is now 4-5 times faster than before! Some other minor changes made.


Image2BBC 0.8.1 Sat Feb 17, 2007 6:54 pm
Fixed a minor bug.


Image2BBC 0.8 Thu Feb 15, 2007 10:45 pm
New features include new dithering algorithms, dithering by serpentine method, zoomed preview (useful for displaying Mode 0 conversions properly) and optional aspect ratio correction. In addition to these there have also been a lot of "under the bonnet" improvements and optimisations including a better conversion engine. There have also been a number of bug fixes.


Image2BBC 0.7.1 Sat Feb 10, 2007 4:48 pm
The only change in this version is that it now creates .inf files when an image is saved for use by programs such as BBC Explorer.


Image2BBC 0.7 Fri Feb 09, 2007 3:02 pm
User can now select their own palette and have the choice of two auto-palette routines. Added an option to enable/disable the smoothing of scaled images. Before this was on by default, but some images (e.g. screenshots of PC games with CGA graphics) look better with this off.


Image2BBC 0.6 Sun Jan 14, 2007 3:21 am
First "unofficial" alpha release to the public. Added a graphical user interface, although not fully functional yet. There are also a number of things such as another method of the auto-palette routine that are not currently accessible via the current GUI.


Image2BBC 0.5 (Unreleased) Fri Jan 12, 2007 8:27 pm
Started to convert Image2BBC to work as a stand-alone product rather than as a plug-in module for BBC Micro Image Converter.


Image2BBC 0.4 (Unreleased) Mon Jan 08, 2007 11:38 am
Added some more dithering algorithms.


Image2BBC 0.3 (Unreleased) Tue Jan 02, 2007 6:49 pm
Some refinements made to the conversion algorithm so that the resulting images look a bit better.


Image2BBC 0.2 (Unreleased) Mon Jan 01, 2007 2:40 pm
Got the dithering (Floyd-Steinberg only at the moment) working.


Image2BBC 0.1 (Unreleased) Sun Dec 31, 2006 5:44 pm
Initial version intended as a plug-in module to BBC Micro Image Converter which was mainly an experiment to test the image conversion process. Does not yet do any dithering or saving as a BBC file.


BBC Micro Image Converter 0.7.7.2 Thu Dec 29, 2005 11:46 am
First public beta release.


Diary

16th June 2008
I thought that I would start keeping a diary on this project, especially since I've been working on it pretty heavily over the past couple of weeks.

The program is currently being rewritten almost from the ground up to make the code more streamline. There have been a huge number of bugs discovered in the process and removed. Lots of optimisations have also been done. Some of the functions (e.g. image processing) have been made more flexible by the addition of more options.

Added a new option to convert images to a colorised 'greyscale' allowing greyscale images to be displayed on black and white displays, an example of which is below. The image on the left is the colourised 'greyscale' image and the image on the right is how it would appear on a black and white display.

Image:Col_gs1.png Image:Col_gs2.png


18th June 2008
Completed rewriting the 'fast image' (custom image drawing routines) and 'image processing' components. The source code of these components have been rewritten to be consistent throughout and easier to maintain. Everything has been optimised for improved speed, memory efficiency and executable size. The image processing routines are now more robust with additional error checking/handling, better recovery handling and cleaner exiting of functions (e.g. freeing up memory that is no longer required) if things do go wrong. Further bugs that have been found have been removed.


19th June 2008
Completed rewriting the 'dither image' component. Like the previously mentioned components, the source code has been rewritten to be more consistent throughout and easier to maintain. The Bayer method of dithering has been added. Improvements have been made to the error handling/checking.


20th June 2008
The dithering algorithm has been updated to produce greatly improved images, especially at the higher dithering strengths. As an example the picture of the baboon below in the middle is the original image with the one on the left being the original dithering algorithm and the one on the right being the new algorithm.

Image:Mandrill_old_dither.png Image:Mandrill.png Image:Mandrill_new_dither.png

As you can see the image produced by the new algorithm is much more faithful to the original with the original algorithm producing a more "washed out" effect. The dithering settings used in both cases for these were Stucki at 100% dither strength with serpentine dithering on. The output image settings were set to Mode 1 using black, red, green and cyan.


21st June 2008
Fixed a small bug in the new dithering algorithm when used with the Atkinson dithering method.


24th June 2008
Fixed a bug in the 'fast image' component that could cause the program to fail when processing images with an alpha channel.


25th June 2008
Completed rewriting the 'import teletext' component for better consistency and easier maintainability. It is still missing some functionality however.


26th June 2008
Added double height text functionality to the 'import teletext' component, made a number of optimisations and fixed a few bugs. There are two modes for the import teletext function which are low resolution and high resolution. An example of the import teletext function in both modes is below:

Image:zoth_small.png

Image:zoth_big.png


27th June 2008
Fixed a bug in the 'fast image' component that caused image corruption on Windows 98 systems. Added held graphics functionality to the 'import teletext' component.


29th June 2008
Added the facility to load files straight from a BBC Micro disc image, although this is still a work in progress. Eventually saving directly to a disc image will be incorporated eliminating the need for other tools for copying files to and from BBC Micro disc images.


30th June 2008
Updated the 'import teletext' component to enable easier handling of files loaded from BBC Micro disc images. Also fixed a minor bug if the size of the teletext screen dump was less than the full size of the screen.


1st July 2008
Made a number of optimisations to the BBC disc image handling routines.


2nd July 2008
Added edge enhancement routines to the 'image processing' component. As an example of this new feature take the following images:

Image:MrBumpy.jpg Image:MrBumpy1.png Image:MrBumpy2.png

The image on the left is the original image, with the one in the middle being the image converted to Mode 4 without edge enhancement and the one on the right with edge enhancement. There is still some fine-tuning of the algorithm to be done and it still needs to be optimised.

Also made a minor improvement to the simple error diffusion dithering method.

UPDATE: The edge enhancement routines are now completed and optimised. Added an option to get just the outline of an image, an example of which is below.

Image:MrBumpy3.png


3rd July 2008
Fixed a bug with the edge enhancement routine that would leave unwanted borders around some images. The edge enhancement routines have also been further optimised for an increase in speed.


4th July 2008
Added the facility of creating blank BBC disc images to the disc image routines. This will be useful later on once the 'save file to disc image' functionality is added. Also fixed a bug in the routines for obtaining the disc info.


6th July 2008
Added the facility of compacting files on a disc image (i.e. the equivalent of the BBC's *COMPACT command) to the repertoire of the disc image functions.


9th July 2008
All of the dithering functions have now been incorporated into the 'image processing' component. Added the ability to adjust the individual RGB channels to the adjust brightness, contrast and gamma routines. Added a reduce image depth function to the 'image processing' component. Fixed a possible division by zero error in the adjust gamma routine.


13th July 2008
Work on adapting the code for Linux has started. The 'fast image' component has been updated to work under Linux. So far all the image processing routines that I have tried (e.g. dithering of images, gamma correction and edge enhancement) appear to work as expected without any further modification to the code.


14th July 2008
The 'import teletext' component has been tested to be working under Linux without any further modification to the code.


17th July 2008
Minor bugfix made to the 'fast image' component.


3rd October 2008
After a hiatus from programming I returned to working on my image converter a couple of weeks ago. I've developed a custom screen storage format for the BBC called the BCS (BBC Compressed Screen) image format. The BCS format compresses the screens and also allows storage of the mode and palette used. Although BCS is in a working state there are still some refinements and additions to be made to the format.


16th October 2008
Work has started on the redesign of the GUI which is being done completely from scratch.


17th October 2008
Added crop image and scroll image functions to the 'image processing' component. Also renamed the reduce image depth function to posterise image.


18th October 2008
Updated the scroll image function so that it can optionally wrap the image. Fixed a bug in the scroll image function that would occur if one of the scroll offsets was larger than the actual image.


20th October 2008
Redesigned the posterise image algorithm in the 'image processing' component to be faster and more flexible than the previous one.


21st October 2008
Added an 'adjust image hue' function to the 'image processing' component, although it needs a little bit of refinement.


22nd October 2008
Added a 'colourise image' function to the 'image processing' component. As with the 'adjust image hue' it still needs a bit of refinement. Here is an example of the 'colourise image' functionality:

Image:Colorize_image.png


23rd October 2008
Rewrote the algorithm for the 'colourise image' function. Now the saturation and luminance can also be adjusted in addition to the hue. Tidied up and optimised the code for the 'adjust image hue', 'colourise image' and supporting RGB<->HSL/HSV converters.


24th October 2008
Done a quick port of the latest code to Linux fixing a couple of issues along the way. Just to show that there is progress being made on the Linux version there is a screenshot below of the 'colourise image' function along with the current Windows version for comparison. There are some minor layout issues that still need to be addressed in the Linux version.

Image:colorize_image_linux.png Image:colorize_image_windows.png

UPDATE: Also done a quick port to MacOS. Again, as with the Linux version, there are some minor issues with the layout that will need to be fixed:

Image:colorize_image_macosx.png


27th October 2008
Added a 'tint image' function to the 'image processing' component.