| Crates.io | retroimg |
| lib.rs | retroimg |
| version | 0.4.0 |
| created_at | 2021-04-25 11:40:34.55319+00 |
| updated_at | 2023-10-18 19:10:02.308945+00 |
| description | Convert images to look like in retro IBM hardware |
| homepage | |
| repository | https://github.com/Enet4/retroimg |
| max_upload_size | |
| id | 389263 |
| size | 69,079 |
Convert images to appear to be reproduced on retro IBM hardware. It can also be used to reduce the color depth of existing images for use in DOS game development.
| original (640x480, 24-bit RGB) | VGA (320x200, 256 colors, 4:5 pixels) | EGA (320x200, 16 colors, 4:5 pixels) | CGA (320x200, 4 colors + bkg) |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
The full image processing pipeline is composed of the following steps:
Each step can be tweaked or skipped to suit your wishes.
Note: This application does not claim to achieve a perfect emulation of old hardware, but it should hopefully attain sufficiently good results for the intended nostalgia kick.
The main options are:
-s | --standard: the video graphics standard to emulate.
This only affects the colors used, not the image resolution.
Possible options:
bw: 1 bit, black and whitecga or cgamode4: CGA in mode 4, attempts to choose
the best sub-palette and background colorfullcga: all 16 colors of the CGA master palettecgamode4high1: CGA in mode 4, always subpalette 1 of high intensity
(black, magenta, white, black)ega: all 64 colors from the EGA master palette16bit: 16-bit color depth (4-5-4 RGB)vga (default) or 18bit: 18-bit master palettetrue or 24bit: 24-bit RGB color depth-R WxH: the resolution to resize the image into.-S WxH: the full image output size, resized from the previous option.-l L2 or -l L2: the color distance/loss algorithm to use for color palette selectionTo convert an image to look like it was presented in VGA mode 13h, with non-square pixels:
retroimg «IMAGEFILE» -s vga -R 320x200 -S 1440x1080 -o «out.png»
This chooses the 256-color palette with the least loss. To use less colors (e.g. 100):
retroimg «IMAGEFILE» -s vga -R 320x200 -S 1440x1080 -c 100 -o «out.png»
To choose an output width or height and let the program pick the other dimensions based on pixel ratio:
retroimg «IMAGEFILE» -s vga -R 320x200 --height 1080 -r 4:5 -o «out.png»
This will stretch the image proportionally to the pixel size 4:5, meaning that it works best for images designed for this.
The full list of options is presented via retroimg -h or retroimg --help.
The operations required for doing this are available as independent functions.
To remove dependencies related with the command line application,
exclude the default feature cli.
[dependencies.retroimg]
version = "0.3"
default-features = false
Licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.