FlorinTulba / Pic2Sym

The application Pic2Sym approximates images by a grid of colored symbols with colored backgrounds.
0 stars 0 forks source link

Pic2Sym v2.1

This application approximates images by a grid of colored symbols with colored backgrounds.
It runs on 64-bit Windows (at least version 7).


Topics:
  1. Description of Pic2Sym application
  2. Related work
  3. Example results
  4. Performance
  5. Conclusions and further directions
  6. Testing the application (64-bit Windows only)
  7. Development environment configuration
  8. Other released versions
  9. Appendix (various technical details)

The first view from the right allows comparing the original image with the approximation result using the Transparency slider at the bottom of the window.

Magnifying a region is possible using the toolbar or the mouse wheel.


The second view displays a part from the symbols used for the approximation. Its status bar provides complete information about these symbols (font family, style, size, encoding and total count).

They are grouped by similarity and those with inverted colors might be ignored while approximating images.


A Control Panel presented later on this page details the control options of the application.

An additional console window is tracing relevant events.

Description of the application

The symbols used for approximation are scalable, preferably fixed-width fonts, like Consolas, Courier New and Lucida Console. Here are more examples of such fonts. Scalable fonts allow using virtually any size of the font while preserving their quality. Fixed-width fonts are more evenly width-distributed, thus more helpful to approximate random patches.

The result of the image transformation is a grid of square cells. All the symbols are preprocessed to fit such cells, so the original symbol set is altered. Therefore the output is simply a new image, and cannot be saved neither as a character table in HTML, nor as a text file (like similar applications do). Displaying the output into a console is also ruled out, first because there are only a couple of console font sizes available and secondly, because consoles usually provide only 16 colors.

Next comes a snapshot of the application while processing an image:

Several features from Pic2Sym (explained in more detail in the Appendix, Control Panel and in the configuration file):

The Control Panel contains all the necessary controls to customize and generate approximations for various images:

Here are more explanations about the controls.

The user can display / hide it using Ctrl+P or the last tool from the toolbar from any other window:

To leave the application, please activate a window (except the console and the Control Panel) and press ESC (check this limitation on that).


The Symbol set window helps browsing the pages of the symbols used for the approximation.

The presented glyphs are already resized to fit in square cells (using widening and sometimes additional minor translation / crop operations).

Blanks and exact-duplicates were removed and the remaining symbols were reordered primarily by similarity (showing larger groups first) and finally by their 'density' (how much surface from their patch they consume).

The glyphs with inverted colors were detected as undesirable symbols (they just induce a slower and lower quality transformation). Any selected category of undesired symbols can be easily hidden from a configuration file to improve the conversion process.


The Unit Tests written for the project report all detected mismatches and wrongfully filtered symbols in a visual and easy to inspect manner based on the zoom and compare features of the main window.

Illustrating again the power of this main window:


Kindly address any observations, suggestions or questions to me using florintulba@yahoo.com.
© 2016-2021 Florin Tulba (GNU AGPL v3 license)


Notes: