https://github.com/matcool/gd-image-to-text
converts images to multiline text objects
https://github.com/matcool/gd-image-to-text
ascii-art geometry-dash image-processing
Last synced: about 2 months ago
JSON representation
converts images to multiline text objects
- Host: GitHub
- URL: https://github.com/matcool/gd-image-to-text
- Owner: matcool
- License: mit
- Created: 2022-09-12T03:25:31.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2022-09-13T03:51:49.000Z (over 2 years ago)
- Last Synced: 2025-03-26T13:45:47.041Z (2 months ago)
- Topics: ascii-art, geometry-dash, image-processing
- Language: Rust
- Homepage:
- Size: 19.5 KB
- Stars: 8
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# gd-image-to-text
[](https://github.com/matcool/gd-image-to-text/releases)
Geometry Dash image to text conversion tool using multiline text objects
This tool outputs a .gmd file which you can import using [GDShare](https://github.com/HJfod/GDShare-mod/)
*if you're allergic to command lines you can just drag an image into the exe ;)*
```
Usage:
gd-image-to-text [OPTIONS]Args:
Path for the input imageOptions:
-g, --grayscale Turns the image grayscale, making it only use one text object
-o, --output Specify path for output .gmd file, if not specified will
open a save file dialog instead
-s, --size Size for the image in *characters*, given in "WxH" format,
if not specified will use the image's actual width and height.
Keep in mind GD characters are about twice as tall as their width
--scale Scale for the text objects, defaults to 0.075
```# FAQ
## How does this work?
Text objects in gd actually support multiline text, and by using characters of similar widths we can abuse this to create ascii art from an image. this tool creates a text object for every color channel (R, G, B) and uses blending to combine them
## Why can't it be higher resolution?
The batch nodes that render all the characters have a limit of 16384 instances. GD has each z layer in a separate batch node so we can use this to have each text object in a separate z layer. \
It's not possible to have a higher resolution by adding more text objects as any characters past the 16384 will simply not render at all, despite being in a different object \
There's still 4 more z layers i could use, however that would make the code more complicated and i think 3 objects is a nice object count :-)## Is this better than previous methods such as Geometrize?
In terms of object count definitely, but in many other aspects, no. \
Not only does this require you to use font 10, it's also incredibly laggy when moving the object and the text objects use a considerable amount of memory## todo:
- higher color quality by using 3 extra z layers
- try other fonts