Hi all, I have finally been able to complete porting of my BMP2QL to the .NET framework. This will be available on the time being via email only to anybody interested.
Also I have identified a bug (?) in Photoshop 7 - created BMPs for sizes less than 320 x 200 where in "some" lines the ending bytes are padded with 00s starting from scanline n-1 (Remember BMPs store bottom-up unless instructed for the opposite). The result is an incorrect (slanted) SCR/PIC file. This can be corrected very easily if you open and save again the file using either the GiMP or Microsoft Paint. -Thanks to Rich Mellor for spotting this- All the documentation I've seen so far mentions nothing about padding the lines of uncompressed 24bit BMPs although such info is mentioned in the case of RLE-4 and RLE-8 encoded bitmaps. The same effect is experienced with Malcolm Lear's BMP2SCR basic programs (for Modes 32 and Mode 4/8) and again only if the BMP originates from Adobe Photoshop 7. -Remember my VB program is based on the original code from Malcolm- New features in the .NET version 1. .NET framework (Duh!) 2. Conversion speed Increase by a factor of x100 (more or less, it's actually 98.55 times faster) !!! This is due to a. direct byte handling instead of type conversion to string type and back to bytes (the fso model for some reason didn't work right with v. 6 -or I never understood it right- so I was forced to use "legacy" commands in the previous versions ie. Open "xxxx" for input as #n etc... This forced also string reading and conversions. -also by use of the FileStream methods which are really fast- b. Handling of the BMP using new data structures arrays instead of plain old byte-by-byte handling c. The CLR (Common Language Runtime) is VERY fast (or so it seems.... I wouldn't say the same for the IDE though... not by a long shot!) d. Improvement of the Little Endian to Big Endian conversion by implementing a sensible conversion scheme... previously the code was a nice example of spaghetti programming :-) 3. Viewing of QL Screen files (not available in the Beta version although the code is there and working... some bugs have to be ironed out first) 4. Handling of SCR AND PIC files (previously the program DID handle PIC files although the option was never available on the executable... I did forget to put it in... thanks to Dilwyn and J?r?me for information on the PE Headers... yep since then :-) 5. Conversion to the following modes: Mode 33, Mode 32, Mode 4, Mode 8, Mode 12 (Not fully implemented although it SHOULD work pending additional info from any Thor XVI owner -see other email-), Mode 16 (Aurora), Mode 256. The following restrictions exist for all non 16 bit modes. Currently Floyd-Steinberg and Median/Colorimetric -My own "invention" or rather adaptation of four-or-so algorithms - are not availble. The program assumes that you have already constructed your 24 bit BMP in a manner such that the data is already there (not to much help huh?) 6. Automatic filename completion for mode distinguishing (ie. test.bmp becomes test32_scr when converting to mode 32)... very useful when you create many versions of the same file... 7. Automatic generation of SBASIC loader with every file that includes the file's width and height as well as options to put in any position on screen you like. What it DOESN'T do (yet) 1. Can't crop or resize... If you want ie to convert to mode 256 a file of 800x600 pixels then you are going to get a 800x600 Mode 256 file (Planned for the next version) 2. Convert from QL modes to PC graphic formats (some tests with an auto-sensing feature for non-PIC files have been carried out with relative success) 3. Conversion to and from more formats. I am currently debating whether (or not) to use already available controls to do the job from a WMF file... we'll see 4. Printing of QL screens (not that you really need to as you can do it from other apps) 5. Direct save/load into and from QL disks 6. Batch conversion... for some reason I always put this one off :-) Okay I really haven't got any documentation on how to create arrays via the Common Dialog Control :-) - Visual Studio .NET doesn't exactly come with a printed manual either...!) 7. Win32 command line version Any more suggestions -or- request to beta test are welcome Please email me @the dokos-gr.net address for details Please also note that if you want to just use it, you will need the Common Language Runtime (NOT included in the Zip file) - This is available for every version of Windows except Windows 3.11 and lower, freely from Microsoft -or at your favourite magazine's CD and it's rather big but you can use it with executables from every language of the visual studio.net pack ie VC#.NET, VC++.NET, VPerl.NET etc. -- Phoebus Dokos - Quantum Leap Software Authorized SMSQ/E reseller Visit us at: http://www.dokos-gr.net/
