textual-paint ============= What if MS Paint isn't retro enough? You need Paint in your terminal. This is a TUI (Text User Interface) image editor, inspired by MS Paint, and built with [Textual](https://textual.textualize.io/). ## Development Install Textual and Stransi: ```bash pip install "textual[dev]" "stransi" ``` Run supporting live-reloading CSS: ```bash textual run --dev paint.py ``` Or run normally: ```bash python paint.py ``` ## License [MIT](LICENSE.txt) ## Unicode Symbols and Emojis for Paint Tools The first thing I did in this project was to collect possible characters to represent all the tool icons in MS Paint, to test feasibility. In other words, I wanted to gauge how good of a recreation it would be possible to achieve, starting from looks. Unfortunately, I haven't run into any significant roadblocks, so I'm apparently recreating MS Paint. [Again.](https://jspaint.app) These are the symbols I've found so far: - Free-Form Select: โœ‚๏ธ๐Ÿ“๐Ÿ†“๐Ÿ•ธโœจโš๐Ÿซฅ๐Ÿ‡ซ/๐Ÿ‡ธโ—Œ - Rectangular Select: โฌšโ–ง๐Ÿ”ฒ - Eraser/Color Eraser: ๐Ÿงผ๐Ÿงฝ๐Ÿงน๐Ÿšซ๐Ÿ‘‹๐Ÿ—‘๏ธ - Fill With Color: ๐ŸŒŠ๐Ÿ’ฆ๐Ÿ’ง๐ŸŒˆ๐ŸŽ‰๐ŸŽŠ๐Ÿชฃ๐Ÿซ— - Pick Color: ๐ŸŽจ๐Ÿ’‰๐Ÿ’…๐Ÿ’ง๐Ÿ“Œ๐Ÿ“โคค๐€ƒ๐Ÿฏ๐Ÿถ - Magnifier: ๐Ÿ”๐Ÿ”Ž๐Ÿ‘€๐Ÿ”ฌ๐Ÿ”ญ๐Ÿง๐Ÿ•ต๏ธโ€โ™‚๏ธ๐Ÿ•ต๏ธโ€โ™€๏ธ - Pencil: โœ๏ธโœŽโœ๏ธ๐Ÿ–Ž๐Ÿ–Š๏ธ๐Ÿ–‹๏ธโœ’๏ธ๐Ÿ–†๐Ÿ“๐Ÿ–๏ธ - Brush: ๐Ÿ–Œ๏ธ๐Ÿ–Œ๐Ÿ‘จโ€๐ŸŽจ๐Ÿง‘โ€๐ŸŽจ๐Ÿ’… - Airbrush: ๐Ÿ’จแ–œโ•”๐Ÿงด๐Ÿฅค๐Ÿซ  - Text: ๐Ÿ†Ž๐Ÿ“๐Ÿ“„๐Ÿ“ƒ๐Ÿ”ค๐Ÿ“œA๏ผก - Line: ๐Ÿ“๐Ÿ“‰๐Ÿ“ˆโŸ๐ˆโ•ฒโงน\โงตโˆ– - Curve: โ†ช๏ธ๐Ÿช๐ŸŒ™ใ€ฐ๏ธโ—กโ— ~โˆผโ‰ˆโˆฝโˆฟใ€œใ€ฐ๏น‹๏นโ‰ˆโ‰‹๏ฝžโ“ - Rectangle: โ–ญโ–ฌโ–ฎโ–ฏ๐ŸŸฅ๐ŸŸง๐ŸŸจ๐ŸŸฉ๐ŸŸฆ๐ŸŸช๐ŸŸซโฌ›โฌœโ—ผ๏ธโ—ป๏ธโ—พโ—ฝโ–ช๏ธโ–ซ๏ธ - Polygon: โ–™๐—Ÿ๐™‡๏น„ใ€โฌฃโฌŸ๐Ÿ”ถ๐Ÿ”ท๐Ÿ”ธ๐Ÿ”น๐Ÿ”บ๐Ÿ”ปโ–ณโ–ฒ - Ellipse: โฌญโญ•๐Ÿ”ด๐ŸŸ ๐ŸŸก๐ŸŸข๐Ÿ”ต๐ŸŸฃ๐ŸŸคโšซโšช๐Ÿซง - Rounded Rectangle: โ–ขโฌœโฌ› The default symbols used may not be the best on your particular system, so I may add some kind of configuration for this in the future. ### Cursor A crosshair cursor could use one of `+โœœโœ›โœšโ•‹โ•ฌ`, but whilst that imitates the look, it might be better to show the pixel under the cursor, i.e. character cell, surrounded by dashes, like this: ``` โ•ป โ•บโ–ˆโ•ธ โ•น ``` ## See Also - [JavE](http://jave.de/), an advanced Java-based ASCII art editor - [Playscii](http://vectorpoem.com/playscii/), a beautiful ASCII/ANSI art editor - [cmdpxl](https://github.com/knosmos/cmdpxl), a pixel art editor for the terminal using the keyboard - [pypixelart](https://github.com/douglascdev/pypixelart), a pixel art editor using vim-like keybindings, inspired by cmdpxl but not terminal-based