#!/usr/bin/env python import requests from PIL import Image import sys import os img_url = 'https://blog.finxter.com/wp-content/uploads/2022/04/greenland_02a.jpg' if __name__ == "__main__": if len(sys.argv) < 2: print("No file given as argument") exit(1) input_file = sys.argv[1] img = Image.new("RGBA", (0,0)) # create empty image to override if os.path.isfile(input_file): img = Image.open(input_file) if not os.path.isfile(input_file): img_url = f'https://raw.githubusercontent.com/msikma/pokesprite/master/pokemon-gen7x/regular/{input_file}' img = Image.open(requests.get(img_url, stream = True).raw) output = "" last_color = "" bb = [0, 0, img.size[0] - 1, img.size[1] - 1] while bb[0] < img.size[0] - 1: if any([img.getpixel((bb[0], y))[3] != 0 for y in range(img.size[1])]): break else: bb[0] += 1 while bb[1] < img.size[1] - 1: if any([img.getpixel((x, bb[1]))[3] != 0 for x in range(img.size[0])]): break else: bb[1] += 1 while bb[2] > bb[0]: if any([img.getpixel((bb[2], y))[3] != 0 for y in range(img.size[1])]): break else: bb[2] -= 1 while bb[3] > bb[1]: if any([img.getpixel((x, bb[3]))[3] != 0 for x in range(img.size[0])]): break else: bb[3] -= 1 # output += "\n\n" for y in range(bb[1], bb[3] + 1): # output += " " for x in range(bb[0], bb[2] + 1): [r, g, b, a] = img.getpixel((x, y)) if a > 0: curr_color = f'48;2;{r};{g};{b}' else: curr_color = "0" if curr_color != last_color: output += f'\033[{curr_color}m' last_color = curr_color output += " " if last_color != "0": output += "\033[0m" last_color = "0" if y < bb[3]: output += "\n" # output += "\n" print(output)