New_image = image.resize((new_width, new_height))ĭef map_pixels_to_ascii_chars(image, range_width=25): New_height = int(aspect_ratio * new_width) (original_width, original_height) = image.sizeĪspect_ratio = original_height/float(original_width) """Resizes an image preserving the aspect ratio. The default char mapping and resolution doesn't render good ASCII arts for every image size and so you should try modifying the char mapping and image size to the one that best represents the given image.įrom PIL import Image ASCII_CHARS = [ '#', '?', '%', '.', 'S', '+', '.', '*', ':', ',', scale_image(image, new_width=100): The code given below is almost self explanatory. ![]() We use the PIL library to play with the images. The point is to assign a group of pixels with slightly varying intensity the same ASCII char. We divide the whole range of 0-255 into 11 smaller ranges of 25 pixels each and then assign each pixel a character according to the range it falls in. A pixel withĪ value of 0 is assumed to be black and the one with 255 is assumed to be white. In a grayscale image, there are 256 shades of gray, or in other words, each pixel carries only the intensity information which is represented by an 8 bit value. The scaled version is then converted to a grayscale image. We scale a given image to a standard resolution that suitably represents the ASCII version of a given image. One of the utility I learnt at the workshop was an image to ASCII art generator. ![]() I was amazed at how easy it was to write simple solutions to complex problems in Python. This workshop that I met "Python" and fell in love with her at first sight. ![]() A few years ago, when I was in college, I attended a workshop organized by FOSSEE and it was in
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |