Here is a little fun. Some Python code that will take a text file and turn it into an image.
When I say, turn it into an image – I don’t mean it will read the text file and make some image from it that we could look at and say… oh the ocean.
What it does it convert the characters into their ASCII number, makes an array, and displays that array.
With that in mind – you could take an image – convert that into a series of ASCII characters, write it out to a text file – then read it back in and BOOM you would have that image.
However depending on what you are doing a MIME would be a better choice.
But in any event, the code does a good job making noise image.
#Reads in a text file and then displays it has an image. #%% import matplotlib.pyplot as plt import numpy as np # Input Text File inputTextFile = r"D:\temp\text.txt" # Define the size of the numpy array sizeHeight = 600 sizeWidth = 800 # Create an empty numpy array, with 0 rows, and the width we need. imageArray = np.empty([0,sizeWidth]) # Function to read a text file and return the contents def returnTextFileContent(file): encoding_format = "utf-8" textDataFile = open(file, mode="r", encoding=encoding_format) textContent = textDataFile.read() textDataFile.close() return textContent # Read Text File - data in textData var textData = returnTextFileContent(inputTextFile) # Check the length of the text file - it needs to be larger than the array or image size if len(textData) < (sizeHeight * sizeWidth): print("Text File to short") exit() # starting the process of converting the text into ascii numbers and appending them to the array # var we store the current line we are processing lineCounter = 0 # we process until we complete the number of vertical lines required while lineCounter < sizeHeight: # we grab the sizeWidth from the larger text file textLine = textData[(lineCounter * sizeWidth):(lineCounter * sizeWidth + sizeWidth)] # create empty list to split the chars textList =  textList[:0] = textLine # do the split # create another list to store the ascii values of the chars asciiList1 =  # alternate over each char in the text list, convert to ascii and store in asciList for c in textList: asciiList1.append(ord(c)) # finally we store the generated list into the imageArray imageArray = np.append(imageArray,np.array([asciiList1]),axis=0) # update the line counter lineCounter += 1 # Set the display size to display full image # Using matplot to load the array into their image display function plt.figure(figsize = (sizeHeight/100,sizeWidth/100)) plt.imshow(imageArray, aspect='auto') # We need to make sure matplot knows it is a black and white image plt.gray() # Shows the Image plt.show()
Example output of text to image
I am always looking for oppunities to put my skills to work.
I am always looking to connect with like minded people.
Want to connect – drop me an email