এই নিবন্ধে আমরা একটি প্রদত্ত চিত্রকে একটি পাঠ্য বেস ছবিতে রূপান্তর করতে চাই যাকে ASCII চিত্রও বলা হয়৷
নীচে পাইথন প্রোগ্রাম রয়েছে যা একটি ইনপুট ইমেজ এবং বিভিন্ন ফাংশন গ্রহণ করবে যাতে সেগুলিকে গ্রেস্কেল ছবিতে রূপান্তরিত করা যায় এবং তারপরে বিভিন্ন প্যাটার্ন তৈরি করতে ASCII অক্ষরগুলি প্রয়োগ করে ইমেজটি সন্নিবেশ করান। অবশেষে ইমেল আসে পাঠ্য ভিত্তিক চিত্র এটি সমতল ASCII অক্ষরের একটি সিরিজ।
উদাহরণ
from PIL import Image import os ASCII_CHARS = [ '#', '?', '%', '.', 'S', '+', '.', '*', ':', ',', '@'] def resize_image(image, new_width=25): (input__width, input__height) = image.size aspect_ratio = input__height/float(input__width) changed_height = int(aspect_ratio * new_width) changed_image = image.resize((new_width, changed_height)) return changed_image def make_grey(image): return image.convert('L') def pixel_to_ascii(image, range_width=25): pixels_in_image = list(image.getdata()) pixels_to_chars = [ASCII_CHARS[pixel_value//range_width] for pixel_value in pixels_in_image] return "".join(pixels_to_chars) def image_to_ascii(image, new_width=25): image = resize_image(image) image = make_grey(image) pixels_to_chars = pixel_to_ascii(image) len_pixels_to_chars = len(pixels_to_chars) image_ascii = [pixels_to_chars[index: index + new_width] for index in range(0, len_pixels_to_chars, new_width)] return "\n".join(image_ascii) def convert_image(image_filepath): # image = None try: image = Image.open(image_filepath) except Exception as e: print("Unable to open image file {image_filepath}.".format(image_filepath=image_filepath)) print(e) return image_ascii = image_to_ascii(image) f = open(os.path.splitext(image_filepath)[0]+'.txt','w') f.write(image_ascii) f.close() convert_image('D:\\button.jpg')
আউটপুট
উপরের কোডটি চালানো আমাদের নিম্নলিখিত ফলাফল দেয় -
ইনপুট ছবি
আউটপুট চিত্র