This application approximates images by a grid of colored symbols with colored backgrounds.
It runs on 64-bit Windows (at least version 7).
Topics:
|
|
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. |
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):
Transformations display intermediary results (drafts) as often as adjusted during the ongoing process [see (1) from the image above - 'Batch Symbols' explained in Control Panel]. When aborting a transformation (with ESC key), the last draft gets saved
The artistic quality of generated results can be improved by:
The symbol set is arranged by similarity of the glyphs, resulting a set of clusters (which gets saved and can be reused afterwards). This accelerates the image transformation because of less compare operations between patches and symbols:
During an image transformation, the competing glyphs can also undergo a symbols preselection process (which is particularly advantageous for larger font sizes):
The user might specify several aspects of interest for every transformation (like a preference for results with many large symbols [(3) from image above], or if the patches might get approximated by less similar symbols, but with better contrast [(4) from image above]). See Control Panel for the entire list of matching aspects
All requested matching aspects (mentioned above) will use a heuristic evaluation and will get rearranged in a particular order that allows detecting as cheaply and as early as possible when a symbol cannot be the best match for a given patch of the image. A surprising consequence for images with rather coarse texture:
The application is faster on multi-core machines (unless it's configured for no parallelism)
Elapsed and estimated remaining time for image conversions and also for loading symbol sets are provided within the console window
Multiple non-conflicting user commands can run in parallel (e.g. clicking 'Instructions' [(5) from image above] while both, a large symbol set [(6) from image above] and also a large image [(7) from image above] are loading)
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: