From cb0fa7b15d1260279572ae6420fc0170cab18034 Mon Sep 17 00:00:00 2001 From: JISAUAY Date: Thu, 12 Sep 2024 13:30:54 -0500 Subject: [PATCH] working on a new color algo --- brightness.py | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++ ctif.py | 20 +++++++++++------ engine.citf | Bin 0 -> 42560 bytes main.py | 4 ++-- 4 files changed, 74 insertions(+), 9 deletions(-) create mode 100644 brightness.py create mode 100644 engine.citf diff --git a/brightness.py b/brightness.py new file mode 100644 index 0000000..8437733 --- /dev/null +++ b/brightness.py @@ -0,0 +1,59 @@ +import string + +from PIL import Image + +import pygame as pg + + + + +FONT_PATH = 'fonts/scientifica.ttf' + + + + + + +CHARS = (string.ascii_letters + string.punctuation).replace('\\', '').replace('/', '').replace('|', '').replace('-', '') +sorted_chars = {} + +for c in CHARS: + pg.init() + font = pg.font.Font(FONT_PATH, 12) + + font_w, font_h = font.size(c) + + window = pg.display.set_mode((font_w, font_h)) + + rendered_char = font.render(c, False, (255, 255, 255)) + + window.blit(rendered_char, (0, 0)) + + pg.display.update() + pg.image.save(window, 'temp.png') + + pg.quit() + + image = Image.open('temp.png') + + w, h = image.size + + white = 0 + for pixel_y in range(h): + for pixel_x in range(w): + pixel = image.getpixel((pixel_x, pixel_y)) + + if pixel == (255, 255, 255): + white += 1 + + sorted_chars[c] = white/(w * h) + +sorted_chars = dict(sorted(sorted_chars.items(), key=lambda item: item[1])) + +chr_str = '' +for k, v in sorted_chars.items(): + chr_str += k + +print(chr_str) + + diff --git a/ctif.py b/ctif.py index 920cf08..37b200f 100644 --- a/ctif.py +++ b/ctif.py @@ -40,6 +40,8 @@ CHARS = list(reversed([ ' ' ])) +NEW_CHARS = '.:\',`;_<^~%>"?!ir=clsxzL}ovCS(+eknuFJfj{amwPZtIT)*hbdpqyEGKOVXYgU&ABDHQR[]MNW@$#' + ALL_CHARS = [ u'█', '@', @@ -87,15 +89,16 @@ class CTIF: dog.save('debug/dog.png') sb, gradient = filters.sobel(dog) + image = image.convert('HSV') w, h = sb.size sb.save('debug/sobel.png') - text_grid_width = w / SCALED_WIDTH + text_grid_width = w // SCALED_WIDTH self.width = text_grid_width - text_grind_height = h / SCALED_HEIGHT + text_grind_height = h // SCALED_HEIGHT self.height = text_grind_height y_offset = 0 @@ -110,10 +113,14 @@ class CTIF: for y2 in range(SCALED_HEIGHT): for x2 in range(SCALED_WIDTH): - real_x = x2 + x_offset real_y = y2 + y_offset + h, s, v = image.getpixel((real_x, real_y)) + color.append((h, s, v)) + print(h, s, v) + + gradient_v = gradient[real_y * w + real_x] char = ' ' @@ -121,15 +128,13 @@ class CTIF: if gradient_v: char = self._match_gradient(gradient_v) else: - char = CHARS[round(L_image.getpixel((real_x, real_y))/(255/len(CHARS))) - 1] + char = NEW_CHARS[round(v/(255/len(NEW_CHARS))) - 1] if char in histogram: histogram[char] += 1 else: histogram[char] = 1 - color.append(image.getpixel((real_x, real_y))) - color_avg = filters.average_colors(color) self.colors.append(color_avg) @@ -191,13 +196,14 @@ class CTIF: window = pg.display.set_mode((self.width * TEXT_WIDTH, self.height * TEXT_HEIGHT)) x, y = 0, 0 + logging.debug(f'Rendering CITF Image with Dim: ({self.width}, {self.height})') for (color, char) in zip(self.colors, self.text): rendered_char = font.render(char, True, color) window.blit(rendered_char, (x * TEXT_WIDTH, y * TEXT_HEIGHT)) x += 1 - if x == self.width: + if x >= self.width: x = 0 y += 1 diff --git a/engine.citf b/engine.citf new file mode 100644 index 0000000000000000000000000000000000000000..c9eb2015303179fd7a6e62c35f9f306286d97dd5 GIT binary patch literal 42560 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 >JGV1jI67T?*wO{tuUq2d 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 TfLawFDwTFuUs5OaB((TH*iwPm literal 0 HcmV?d00001 diff --git a/main.py b/main.py index 985291e..4fc1630 100644 --- a/main.py +++ b/main.py @@ -7,13 +7,13 @@ import ctif FORMAT = "%(levelname)s %(filename)s - %(message)s" logging.basicConfig(level=logging.DEBUG, format=FORMAT) -IMAGE_PATH = 'sample-images/engine.PNG' +IMAGE_PATH = 'sample-images/sunflower.jpg' def main(): image = Image.open(IMAGE_PATH) i = ctif.CTIF(image) - # i.save_image('render.png') + i.save_image('render.png') i.save_citf('engine') if __name__ == '__main__':