Code Monkey home page Code Monkey logo

text-to-image's Introduction

Text To Image

Easily convert your text to grayscale images and vice versa.

With this tool you can encode text or plain text files to a grayscale image to be easily shared. Each pixel represents a single character's decimal value. When decoding an image you can decode text straight to the console or to a plain text file.

grayscale-image-for-dictionary

Images use a PNG file extension. The image size will be automatically be set depending on the text length to be encoded.

Text should use a character encoding scheme using 8 bits or less until additional functionality is added to support UTF-8 (16 bit). If a character's decimal value is greater than the limit (see below) the it will be divided by the limit and the new value used. When the character value equals the limit value the new value will be 1.

The limit value passed using either command line argument -l(--limit) specifies the decimal value limit for pixel values starting from 1. The default is 256 allowing for numbers from 1 to 255 (i.e. 8 bit pixels). If the limit value is greater than 8 bits then the value will still be wrapped around since the output image is grayscale.

Requirements
  • Python 3.x
  • Pillow (PIL fork)

Install

You can install text_to_image using pip or setup.py

  • Using pip
$> pip3 install text_to_image
  • Using setup.py. First navigative to the root directory where setup.py is located then run
$> python3 setup.py install

How to Use

Once installed you can either directly use the encode.py and decode.py file or import and use the relevant functions.

  • Using the encode.py
$> python3 encode.py -t "Hello World!" image.png  # encodes given text
$> python3 encode.py -f my-text-file.txt image.png  # encodes a text file
$> python3 encode.py --help  # for more information on arguments
  • Using decode.py
$> python3 decode.py image.png  # decodes a given image
$> python3 decode.py -f my-text-file.txt image.png  # decodes image.png to the given text file
$> python3 decode.py --help  # for more information on arguments
  • Importing
import text_to_image

encoded_image_path = text_to_image.encode("Hello World!", "image.png")
encoded_image_path = text_to_image.encode_file("input_text_file.txt", "output_image.png")

decoded_text = text_to_image.decode("encoded_image.png")
decoded_file_path = text_to_image.decode_to_file("encoded_image.png", "output_text_file.txt")

Tests

To run tests, navigate to the root directory where setup.py is located and run

$> python3-m unittest discover tests -v

Another image example:

another-example-image-with-encoded-text

TODO:

  • Add custom image sizes.
  • Expand pixel value to allow for UTF-8 characters.

text-to-image's People

Contributors

akapila011 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.