[HN Gopher] Show HN: A dot matrix rendered using Braille characters
___________________________________________________________________
Show HN: A dot matrix rendered using Braille characters
Author : timfi
Score : 15 points
Date : 2021-08-16 18:10 UTC (4 hours ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| Cyberdog wrote:
| For a bitmap equivalent, check out my own DotArt:
| https://albright.pro/dotart/
|
| I'm not a JS expert so there's probably room for
| improvement/modernization code-wise but I think it works pretty
| well and I'm happy with the results.
| nomagicbullet wrote:
| Nice idea. I'd recommend implementing a demo image on the site.
| Not everybody will go through the trouble of uploading their
| own file to test out the project.
| Cyberdog wrote:
| Yeah, once upon a time I had an idea of having a drop-down
| menu which would have four or five sample images you could
| select from to instantly load them into place. I can't
| remember why I didn't end up implementing that. But unless a
| new client drops out of the sky in the next few days, I'm
| going to have some spare time later this month, so perhaps
| I'll take your comment as motivation to hack that into place.
| :)
| timfi wrote:
| Very nice! I was thinking of adding something akin to this as
| well, at least in terms of image dithering. :)
|
| But I'm still torn as the _well behaved_ python programmer in
| me wants to add pillow as a dependency for that and the _not so
| well behaved_ one wants *0* dependencies. I think I 'll add it
| as an extra-dep when get around to it.
| Cyberdog wrote:
| Yeah, I get it - I made a point of building this with no
| jQuery or other JS dependencies just for more experience in
| writing "pure" vanilla JS. But of course one of the ways I
| can get away with that is that the browser already gives me a
| huge "standard library" of sorts for doing hard things like
| reading compressed image formats...
| timfi wrote:
| Though python has a massive set of " _included batteries_
| ", simple images aren't included in those. This makes me
| very sad sometimes and I usually just fall back to simple
| BMP files... :/
| romeovs wrote:
| This is pretty cool!
|
| It reminds me of a similar project that's been around called
| drawille [0] which is pretty nifty.
|
| [0]: https://github.com/asciimoo/drawille
| dheera wrote:
| I also wrote a similar one:
|
| http://github.com/dheera/python-termgraphics
| timfi wrote:
| I thought I remembered seeing something similar a while back...
| This explains it! Thanks for the info. :D
| danellis wrote:
| Reminds me somewhat of Teletext graphics, whose character set
| included 2x3-cell blocks that could be displayed either joined up
| or separated.
|
| https://channel26.uk/teletext-design/
| timfi wrote:
| Similar characters actually exist in unicode as well irrc.
|
| ...On a side note, I think you kickstarted me down the path of
| abstracting the drawing algorithms and implicit matrix protocol
| out, just to make it easier to implement this with different
| character sets. One set for example could be [U+2596 .. U+259F,
| U+2589], so basically just a 2x2 grid per character.
| timfi wrote:
| I made dotmatrix over the weekend and I thought some you might
| enjoying something like it. The library is written in pure python
| without any dependencies. As of now I've included some simple
| drawing functions using Bresenham's line/circle/AA ellipse
| algorithms and even a function for Bezier curves with arbitrary
| amounts of control points using De Casteljau's algorithm.
| _Microft wrote:
| Looks cool. Have you had feedback from people using braille
| displays? Can they understand these images or do they look like
| garbled text to them because it is using letter symbols without
| their actual meaning?
| timfi wrote:
| Sadly (or luckily?) I don't know anyone who has/uses/has to use
| a braille display. But I think that if the "reader"/viewer
| doesn't know from the get go that the following characters
| aren't text it'll for sure throw them through a loop... :'D
| blendergeek wrote:
| Most braille displays have only one line of output so a 2d
| image probably would not "come through" properly.
|
| Please note: I neither can read or braille nor have I have seen
| a braille display so take what I say with a grain of salt.
| adamrezich wrote:
| the example in the readme doesn't render correctly for me (Chrome
| on Windows 10). is this an issue with the font or what?
| timfi wrote:
| Yeah, I've noticed that a lot of "monospace" fonts don't
| actually use the same character width for _all_ characters...
| What makes it even worse is that the "monospace" font used by
| GitHub is one of those. It screws me over from time to time as
| I like to format things nicely and use a lot of unicode...
|
| I think I will need to add some images to the readme as well,
| just make it looks less wonky. :(
| SahAssar wrote:
| Github uses a system font stack, this is the one for code
| blocks: `ui-monospace,SFMono-Regular,SF
| Mono,Menlo,Consolas,Liberation Mono,monospace`.
|
| I don't know if there are better monospace ones builtin on
| windows 10 that they could add to the stack.
| timfi wrote:
| Not to get snarky (and certainly not at you, thanks for the
| info ;) ) but Microsoft owns Windows 10 _as well as_
| GitHub. If anyone could add a better default monospace font
| to the mix it would be them... :D
| ASalazarMX wrote:
| Copy-pasted the example into Notepad and it still looks warped.
| Tried to align them adding three spaces to the middle of each
| line except the first and last, and most rows still don't
| align. Changed the font from Consolas to Courier to Courier
| New, and they still don't align.
|
| Maybe Unicode Braille has issues with Windows monospace fonts?
| iOS and Linux display them aligned.
| timfi wrote:
| It works for me using Pragamata Pro (my trusty default) and
| some preinstalled ones (at least mac) those being PT Mono,
| Spot Mono, and Andale Mono. It shouldn't be an issue as long
| as the "empty braille character", i.e. U+2800, doesn't get
| kerned to hell and back by the font.
| dheera wrote:
| A similar library I wrote: https://github.com/dheera/python-
| termgraphics
|
| I use it in: https://github.com/dheera/rossshow
| timfi wrote:
| Very cool! :D
|
| I also thought about adding color support via ANSI escape
| sequences, but for this project I decided against using them to
| keep things simple a widely accessible.
___________________________________________________________________
(page generated 2021-08-16 23:01 UTC)