Python Canvas mit zwei separierten Seiten?

Hey! Ich bin seit einiger Zeit dran in Python Filter für Bilder zu erstellen und habe jetzt einen Filter, welcher das Bild in einem "Low-Poly-Game-Look" erscheinen lässt (unten ist das Programm, es funktioniert ohne Probleme).

Der image_helper ist schon gegeben. Mein Ziel ist es jetzt beim Starten des Programms zu bekommen, dessen linke Hälfe des Bildes (50%) modifiziert ist mit den Dreiecken, und die rechte Seite (50 % vom Canva) unverändert bzw. original bleibt. Schnittgerade ist vertikal.

Ich habe schon versucht, diese beiden Hälften in ein Canva einzufügen, jedoch ist dabei die modifizierte Seite schwarz gewesen oder beide Seiten wurden gezeigt, jedoch auf unterschiedlichen Bildern. Langsam zweifle ich daran, ob mein Ziel überhaupt möglich ist.

Ist es möglich so etwas zu machen?
Wenn ja, warum funktioniert es bei mir nicht bzw. woran könnte es liegen?

from image_helper import *
 
img = load_rgb_image('canva_test.jpg')
 
w,h = img.size
 
pixels = load_rgb_pixels_2d(img)
 w,h = img.size
 new = new_rgb_image(w, h)
 c = Canvas(new)
 
for x in range(w):
   for y in range(h):
       if x % 5 == 0 and y % 5 == 0:
           r, g, b = pixels[x][y]
           polygon_radius = random.randint(5,15)
           polygon_rot = random.randint(0, 360)
           c.polygon(x, y, polygon_radius, 3, (r,g,b), rot=polygon_rot, outline=None, width=0)
 
c.show()

(image_helper:)

from PIL import Image
from PIL import ImageDraw
import random

def load_rgb_pixels_2d(filename):
    if type(filename) == type('foo'):
        im = Image.open(filename)
    else:
        im = filename
    w, h = im.size
    data = im.getdata();
    return [[data[y*w + x] for y in range(h)] for x in range(w)]

def new_rgb_image(w, h, pixels=None):
    im = Image.new('RGB', (w,h))
    def mapInt(p):
        r,g,b = p
        return int(r), int(g), int(b)
    if pixels is not None:
        if isinstance(pixels[0], list):
            pixels = list(zip(*pixels))
            pixels = [mapInt(item) for sublist in pixels for item in sublist]
        else:
            pixels = list(map(mapInt, pixels))
        im.putdata(pixels)
    return im

class Canvas:
        
    def polygon(self, x, y, r, s, c, rot=0, outline=None, width=0):
        self.draw.regular_polygon((x,y,r),s,rot,c, outline)
Bildbearbeitung, Filter, Programm, programmieren, canvas, Image, Informatik, Programmiersprache, Python
Wo schlagt ihr nach, wenn ihr euch nicht auskennt beim Programmieren?

Hallo Leute, ich will nur Fragen, was ihr macht, wenn ihr nicht weiter wisst bei einem Projekt, während ihr programmiert. 

Weil ich möchte programmieren und ich möchte meiden Internet Seiten (die mit fertig geschriebenen) und YouTube Tutorials zu verwenden, während ich programmiere, da dort die Codes fertig geschrieben sind und ich sie nicht komplett abschreiben möchte, aber ich könnte mir den Code zumindest durchlesen.

Ich würde lieber im Internet die offizielle Dokumentationen der Programmiersprachen zur Hand nehmen und wenn es wirklich ein spezifisches Problem ist, könnte ich diese oben genannten Methoden verwenden, die ich normalerweise Meiden würde und wahrscheinlich auch Foren wie auf Reddit und Stack Overflow verwenden (obwohl mir Stack Overflow immer sehr unsympathisch wirkt).

Mir ist es bewusst, dass das alles Selbstverständlich ist sowas zu tun, aber in der Schule wurde uns sowas nicht so gelehrt sowas zu machen, sondern uns wurden die Zetteln/Word Dateien gegeben, mit Trockenen Erklärungen und meistens stumpfes Auswendiglernen. Die Aufgaben, die uns die Professoren geben sind recht unverständlich und trotz das wir sie Fragen stellen konnten, haben sie niemanden beim Programmieren geholfen, sowie als wollen sie uns dazu bringen das Programmieren zu hassen.

Versteht mich nicht falsch, ich finde Programmieren trotzdem interessant und will es auch erlernen, aber das was man in der Schule lernt ist nichts. Wir haben dort nie wirklich was mit GC oder Memory Allocations gehabt, sondern haben meistens oberflächlich mit VS 2019 mit C# gelernt. Die Sprache ist eigentlich recht verständlich, aber in der Schule war es eben recht schmerzhaft zu lernen.

Programmiersprachen die ich lernen möchte sind C# und Python zurzeit. In der Zukunft auch Rust, aber das würde ich später lernen.

Wie ist es bei euch so?

Danke LG

Software, App, Programm, Webseite, programmieren, C Sharp, Entwicklung, Programmiersprache, Python, Softwareentwicklung, Rust, Entwicklertools

Meistgelesene Fragen zum Thema Programm