Die Software


Diese Seite bildet von jetzt an das Dashboard für's Programm. Ich werde hier von nun an all die Funktionen vorstellen, welche aktuell möglich sind, welche gerade umgesetzt werden, sowie jene, welche prinzipiell vorstellbar sind.


Die Software des Deep-Picture Converters hat schon jetzt so etwas wie eine Geschichte. Seit dem ersten ''fertigen'' Prototypen vom 17.10.21 gab es zahlreiche Updates. Fehlerbehebungen, Verbesserungen und technische Innovationen, sowie letztendlich auch Veränderungen im Design haben zur Fertigstellung einer ersten für jeden einfach und gut Nutzbaren Version für Windows geführt. Man konnte diesen Deep-Picture Converter Version 1.0 zuletzt am 27.02.22 kostenlos hier auf der Website herunterladen.


Alle Einstellungsmöglichkeiten

Hier ist eine Liste mit allen derzeit schon möglichen, in der Umsetzung begriffenen, allen direkt geplanten sowie weiteren vorstellbaren Einstellungsmöglichkeiten zur Erzeugung eines Deep-Picture aus einem Foto oder einer anderen Grafik.



Derzeit schon möglich:


(1) Die Auswahl eines Bildes

Selbstverständlich kann das Bild zur Konvertierung frei gewählt werden, derzeit unterstützte Formate für das Input sind JPG und PNG, weitere sind denkbar. Es kann sogar sein dass das Programm schon jetzt weitere akzeptiert, man könnte das einmal ausprobieren.


(2) Die Auswahl der Wachstumsart

Es kann zwischen linearem und exponentiellem Pixelwachstum gewählt werden. Bei der linearen wird pro erzeugter Pixel-/Felderreihe ein bestimmter absoluter Wert addiert, bei der exponentiellen Variante wachsen die Pixel von Reihe zu Reihe jeweils um einen bestimmten Faktor.


(3) Die Auswahl der Färbung

Es kann zwischen drei Optionen gewählt werden:

a) Häufigste – Die im Bereich am häufigsten auftretende Farbe wird zur Färbung des kompletten Quadrates genutzt.

b) Zufällige – Eine zufällige im Bereich auftretende Farbe wird zur Färbung des kompletten Quadrates genutzt.

c) Berechnen – Die Farbe eines Quadrates des Deep Picture wird durch Auswertung aller RGB-Werte genau berechnet. (was etwas längere Ladezeiten verursacht)


(4) Die Eingabe der Größe des Zentrums

Bestimme die Größe des detaillierten Zentrums (in Pixeln im Quadrat) durch Eingeben einer natürlichen Zahl (mindestens ''1''), in welchem die Originalauflösung erhalten bleibt.


(5) Die Eingabe der Pixel-/Feldgröße der ersten Reihe

Bestimme die Größe der ersten das Zentrum umgebenden Reihe von Quadraten durch Eingeben einer natürlichen Zahl (mindestens ''1''). Die Quadrate der ersten Reihe dürfen nicht größer als das gesamte Zentrum sein, ansonsten hat man diesbezüglich jedoch alle Freiheiten.


(6) Die Eingabe eines Wertes für das Wachstum

Bestimme, wie schnell die Pixel vom ausgewählten Mittelpunkt/Zentrum zu den Rändern des Bildes hin anwachsen sollen. Für das lineare Wachstum muss derzeit noch eine natürliche Zahl gewählt werden (z.B. ''1'' oder ''2''). Für das exponentielle Wachstum kann ein beliebiger Faktor >1 frei gewählt werden (z.B ''1.02997'' oder ''2''). Das Programm berechnet, ausgehend von den Ausmaßen der ersten Pixelreihe, die Werte für alle Reihen und rundet dann jeweils auf ganze Pixel ab - das heißt ein Wert von zum Beispiel 2.79 erzeugt immer noch eine Reihe mit 2x2 Pixel großen Feldern. Das Programm akzeptiert dabei keine Kommas, sondern nur Punkte.


(7) Die Auswahl des Mittelpunktes oder die manuelle Eingabe des x- und y-Wertes

Der Mittelpunkt des Zentrums kann durch Anklicken eines Buttons aus dem Originalbild ausgewählt werden. Ein Fenster öffnet sich, in welchem man durch Klicken eine rote Markierung setzen kann. Alternativ oder zur nachträglichen Feinjustierung kann man den genauen Mittelpunkt manuell eingeben. Der x-Wert wird dabei von links gemessen, der y-Wert von oben.


(8) Die Auswahl, ob sich das Bild nach der Verarbeitung öffnen soll

Es gibt eine kleine Box, setzt man vor der Umwandlung einen Punkt dort hinein, öffnen sich anschließend Eingabe- und Ausgabedatei automatisch. Eigentlich soll sich ja nur das Resultat öffnen, der kleine Fehler wird derzeit behoben.


(9) Die Angabe eines Zielordners für die umgewandelten Dateien

Selbstverständlich lässt sich auswählen, in  welchem Zielordner die PNG-, die SVG- sowie die ''Netz-PNG-Datei gespeichert werden sollen. Die Ausgabedateien bekommen dabei den Originalnamen zugewiesen und erhalten eine entsprechende Ergänzung (zum Beispiel: ''logo_color_output'' oder ''logo_net'').


(10) Die Wahl der Sprache

Derzeit kann zwischen Deutsch und Englisch gewählt werden, indem man auf eines der Ländersymbole in der rechten oberen Ecke klickt.



In Umsetzung begriffen (und wahrscheinlich am 01.06.22 zum nächsten Release mit dabei):


(1) Das liniare Pixelwachstum akzeptiert auch Kommazahlen

Momentan können bei Auswahl des linearen Pixelwachstums nur natürliche Zahlen für den Wert ''Wachstum'' angegeben werden, Eingaben mit einem Punkt (das Programm akzeptiert ausschließlich Punkte...) werden ignoriert und abgerundet. Nach dem Update sollen, wie es bei der exponentiellen Struktur derzeit schon möglich ist, gebrochene Zahlen akzeptiert werden. Der jeweilige Wert wird jeweils aufaddiert, beginnend mit dem Wert für die ''Auflösung der ersten Reihe'', anschließend werden die Ergebnisse auf ganze Pixel abgerundet.


(2) Die Färbung durch am häufigsten auftretende Farbwerte wird neu ermittelt

Bei der aktuellen Version (1.0) gibt es Probleme bei der Ermittlung bzw. Umsetzung der am häufigsten auftretenden Farbwerte. Ich hatte dies vor einigen Tagen exemplarisch getestet und merkwürdige Ergebnisse erhalten. Der Programmierer, der das Programm in Python umsetzt, arbeitet an einer Lösung.


(3) Es öffnet sich, wenn die Option ausgewählt ist, nur noch das Ausgabebild

Wenn man derzeit ein Häkchen im Feld ''Zeige Ergebnis'' setzt, wird nach der Umwandlung sowohl Eingabe- als auch Ausgabedatei angezeigt. Die Eingabedatei ist hier jedoch unnötig, da sollte man nochmal was machen.


(4) Auswahl welche Dateien herausgegeben werden

Bisher wird nach jeder Umwandlung, egal welche Einstellungen vorgenommen wurden, ein PNG-Bild, ein SVG-Bild, sowie eine PNG-Netzstruktur ausgegeben. Die Nutzer sollten selbst entscheiden können, was davon sie brauchen und dementsprechend Häkchen setzen können.


(5) Die ungefähre Anzahl der Felder wird berechnet und angezeigt

Ich habe mich am 27.01. den ganzen Tag über einem ganz besonderen Projekt gewidmet. Da Nilesh, der das Alles in Python umsetzt viel zu tun hat und ich nicht wusste, ob das Programm selbst von sich aus weiß, wie viele Felder eine bestimmte Netzstruktur hat, habe ich es selbst in die Hand genommen. Ich habe zwei gigantische Open-Office Calc Tabellen angelegt, welche nach Eingabe aller Parameter die ungefähre Anzahl der Felder des zukünftigen Deep-Picture berechnen. Dieser Wert soll in Version 2.0 vor betätigen des ''Umwandeln''-Buttons angezeigt werden können, sodass Nutzer die Größe der Datei und den Verlauf der Bildauflösung besser einschätzen können.

Die beiden Tabellen stehen von nun an im Downloadbereich kostenlos zur Verfügung.



Geplant (und mit ganz viel Glück am 01.06.22 auch schon mit drin):


(1) Funktionen ein-/ausblenden

Das Programm bläht sich mehr und mehr auf, es könnte unübersichtlich werden. Deswegen sollte es die möglichkeit geben, einen Teil des Einstellungsmenüs einzuklappen


(2) Die Eingabe eines Wertes für den Wachstumsstopp

Ein weiterer beteutsamer Parameter ist ein Ende des stetigen linearen oder exponentiellen Pixelwachstums. Vielleicht möchte ein Nutzer eine bestimmte Grundauflösung erhalten und nur einen Bereich extrem hoch aufgelöst erhalten? Durch Eingabe eines Wertes für die maximale Größe eines Feldes/Pixels kann das stetige Wachstum zielgerichtet akkurat beendet werden.


(3) Die Möglichkeit einer Stapelverarbeitung

Ich habe einige konkrete Ideen zur Umsetzung einer Stapelverarbeitung, welche vorallem in der Lage dazu ist, Videos wie zum Beispiel oben in der Galerie zu erzeugen. Die Vorstellung beschränkt sich noch auf die Mehrfachumwandlung ein und desselben Bildes, doch perspektivisch könnte man auch Videos und deren Einzelbilder in Betracht ziehen. (Da geht es dann natürlich nicht um das Einsparen von Speicherplatz, sondern definitiv um ästhetische Faktoren)



Zukunftsvisionen (ganz sicher am 01.06.22 nicht mit inbegriffen):


(1) Eine kreisförmige Pixelanordnung

Ich habe keine Ahnung in Bezug auf programmiertechnische Fragen. Ich bin mir nicht sicher inwiefern meine Ideen umsetzbar sind. Ich versuche mir zwar hier und da etwas Python beizubringen, doch das nützt mir momentan noch wenig. Ich habe also eine Kreisförmige Netzstruktur entworfen. All die Parameter der quadratischen würden schlicht übernommen, nur dass das Netz dann rund ist. Die SVG würde klasklare Teile von Kreisabschnitten abbilden, da es die Felder in Form von Vektoren speichert. Bei der Umwandlung in Rasterbilder hätte man das Ergebnis natürlich wieder in die Pixelwelt zurückgezwungen, doch bei ausreichender Größe der Kreiselemente und des Wachstums wäre das nebensächlich - auch dies ist natürlich rein von ästhetischem Nutzen.


(2) Eine dreieckige Pixelanordnung

Genauso gut lässt sich ein dreieckiges Zentrum und von da aus anwachsende Reihen von Dreiecken vorstellen. Doch wie gesagt, das ist bisher alles nur Idee und Theorie.