| 1 | [[Image(source:www/img2oric/real-oric.jpeg,align=right)]] |
| 2 | = Oric Atmos graphics using libpipi = |
| 3 | |
| 4 | [wiki:libpipi] can load and save images in the Oric screen format. The [http://www.defence-force.org/computing/oric/gallery/index.htm Oric screen format] is one of the most twisted standards and very little artwork exists for this vintage computer. It was therefore the perfect challenge for the Caca Labs image processing team. |
| 5 | |
| 6 | The graphical part of the Oric screen has 240×200 pixels and can only display 8 different colours (black, blue, red, green, cyan, magenta, yellow and white). Each horizontal group of 6 pixels can only use two different colours: the foreground and the background colours. The background ''or'' the foreground colour may also be changed (one at a time), but while doing so the next 6 pixels cannot be chosen: they will use the background colour instead. Finally, a special bit may be activated to display the current group of pixels in reverse video. |
| 7 | |
| 8 | [wiki:libpipi] is pretty slow: around 2 minutes to process an image on a modern computer at full quality. It is certainly possible to make it run faster, but I am not aware of trivial ways to do so, except by reducing the computation depth (hence reducing the quality). |
| 9 | |
| 10 | == Downloads == |
| 11 | |
| 12 | There used to be a program called `img2oric` to do this task, but [wiki:libpipi]’s `pipi` utility is now far more powerful. |
| 13 | |
| 14 | Windows executable (28 Sep 2008 snapshot): [/files/img2oric/pipi.exe pipi.exe]. |
| 15 | |
| 16 | For those interested, the relevant source code is in [/browser/libpipi/trunk/pipi/codec/oric.c oric.c]. |
| 17 | |
| 18 | == Examples == |
| 19 | |
| 20 | Convert an Oric `.tap` file into a BMP: |
| 21 | |
| 22 | {{{ |
| 23 | pipi screen.tap -o image.bmp |
| 24 | }}} |
| 25 | |
| 26 | Convert a BMP file into an Oric `.tap` file: |
| 27 | |
| 28 | {{{ |
| 29 | pipi image.bmp -o screen.tap |
| 30 | }}} |
| 31 | |
| 32 | Convert a BMP file into an Oric `.tap` file, then reopen the `.tap` file and save it as another BMP: |
| 33 | |
| 34 | {{{ |
| 35 | pipi image.bmp -o screen.tap screen.tap -o screen.bmp |
| 36 | }}} |
| 37 | |
| 38 | Open a BMP file, convert it to linear colour space (gamma = 1.0), apply a 2×2 Gaussian blur filter and save it into an Oric `.tap` file: |
| 39 | |
| 40 | {{{ |
| 41 | pipi image.bmp --gamma 1 --gaussian 2 -o screen.tap |
| 42 | }}} |
| 43 | |
| 44 | == Screenshots == |
| 45 | |
| 46 | These images show how [wiki:libpipi] performs. The results may not seem terribly clean, but they are probably better than anything that has been seen so far on an Oric computer. |
| 47 | |
| 48 | These first 4 images show the results on the same images than the ones on Dbug’s [http://www.defence-force.org/computing/oric/coding/annexe_3/pictconv/ PictConv] website, to illustrate the improvements over the traditional RGB separation technique. |
| 49 | |
| 50 | [[Image(source:www/img2oric/buffy.png)]] [[Image(source:www/img2oric/output-buffy.png)]] [[Image(source:www/img2oric/mire.png)]] [[Image(source:www/img2oric/output-mire.png)]] |
| 51 | |
| 52 | [[Image(source:www/img2oric/dog.png)]] [[Image(source:www/img2oric/output-dog.png)]] [[Image(source:www/img2oric/lena.png)]] [[Image(source:www/img2oric/output-lena.png)]] |
| 53 | |
| 54 | The following images show [wiki:libpipi]’s results with grayscale |
| 55 | images and cartoon images. |
| 56 | |
| 57 | [[Image(source:www/img2oric/bufbw.png)]] [[Image(source:www/img2oric/output-bufbw.png)]] [[Image(source:www/img2oric/homer.png)]] [[Image(source:www/img2oric/output-homer.png)]] |
| 58 | |
| 59 | The following images use real Oric artwork, taken from the Buggy Boy and the VIP 4 demos: they are almost pixel-perfect. |
| 60 | |
| 61 | [[Image(source:www/img2oric/bb.png)]] [[Image(source:www/img2oric/output-bb.png)]] [[Image(source:www/img2oric/eatme.png)]] [[Image(source:www/img2oric/output-eatme.png)]] |
| 62 | |
| 63 | And finally, this is an animation whose frames were converted to Oric colours using [wiki:libpipi]: |
| 64 | |
| 65 | [[Image(source:www/img2oric/bear.gif)]] [[Image(source:www/img2oric/output-bear.gif)]] |
| 66 | |
| 67 | == Credits == |
| 68 | |
| 69 | The libpipi Oric codec was written by Sam Hocevar. Thanks to Jean-Yves Lamoureux, Mickaël Pointier, Robert Chéramy, André Chéramy and Fabrice Frances for their help, their work and the information they provided. |