Wie erstellt man solche "Stickgrafiken"

taeb.de

taeb.de

Aktives Mitglied
Thread Starter
Dabei seit
24.08.2007
Beiträge
2.109
Reaktionspunkte
122
Hi,

eine Kollegin von mir erstellt mittels Coreldraw und vermutlich einem anderen Programm solche Grafiken.

Da ich kein Windows nutzen möchte suche ich eine äquivalente Lösung auf dem Mac. Egal ob als Plugin für Illustrator oder eigenständiges Programm.

Herzlichen Dank
Beispiel.png
 
Ich hab hier mal eine Quick und Dirty Lösung in Mathematica geschrieben. Quick und Dirty, da die Lösung alles andere als effizient ist. Aber wenn man es bei der Punktanzahl nicht übertreibt, läuft es in wenigen Sekunden durch.

So, nun zum Code:

Für das Bild mit zwei Farben musste ich ein wenig tricksen, da ich gerade keines zur Hand habe. Ich habe daher einfach irgendein Bild genommen und es in ein Binärbild umgerechnet. Der Code sieht wie folgt aus:

Code:
Bild = Import[...];
AnzahlPunkteInBreite = 100;
Farbe = Blue;

im = ImageResize[Bild, AnzahlPunkteInBreite];

bin = Binarize[im];

Farbwerte = ImageData[bin];

dimensionen = ImageDimensions[bin];

Liste = {};

For[i = 1, i < dimensionen[[1]],i++,For[j = 1, j < dimensionen[[2]], j++,If[Farbwerte[[j, i]] == 0,AppendTo[Liste, {Farbe, Disk[{i, dimensionen[[2]] - j},1/2]}]];]];

Ergebnis = Graphics[Liste]

So, kurz zur Erläuterung. Die ersten drei Zeilen muss der Benutzer vorher anpassen. In der Variable "Bild" muss das Ausgangsbild gespeichert sein, das man beispielsweise über den Import-Befehl laden kann. "AnzahlPunkteInBreite" gibt an, wie viele Punkte das Ergebnisse in der Breite haben soll, die Anzahl in der Höhe ergibt sich dann aus dem Seitenverhältnis des Bildes. Und "Farbe" beinhaltet die Farbe, die die Punkte am Ende haben sollen, hier also Blue = Blau. Wem die vordefinierten Farben nicht zusagen, kann gerne über Funktionen wie RGBColor eine Farbe seiner Wahl definieren. Wichtig noch, sollte das ganze mit einem echten Zweifarbenbild durchgeführt werden, muss bei der Binarize-Funktion darauf geachtet werden (durch Angabe eines Thresholds), dass die zwei Farben nicht beide auf Weiß oder Schwarz abgebildet werden. Das Ergebnis wäre sonst recht langweilig.
Der Code läuft dann durch (bei den hier gewählten Werten braucht er wenige Sekunden) und "Ergebnis" enthält dann das Endergebnis. Das Endergebnis enthält nur farbige Bälle, keine weißen Bälle (könnte man aber simpel anpassen). Das Ergebnis ist eine Vektorgraphik, kann also beliebige skaliert werden. Für die Weiterverwendung kann man "Ergebnis" beispielsweise als pdf exportieren (Funktion Export lässt grüßen).

Will man generell in Bildern Pixelgruppen durch entsprechend gefärbte Punkte ersetzen, geht das mit folgendem Code:

Code:
Bild = Import[...];
AnzahlPunkteInBreite = 100;

im = ImageResize[Bild, AnzahlPunkteInBreite];

bin = Binarize[im];

Farbwerte = ImageData[bin];

dimensionen = ImageDimensions[bin];

Liste = {};

For[i = 1, i < dimensionen[[1]],i++,For[j = 1, j < dimensionen[[2]], j++,If[Farbwerte[[j, i]] == 0,AppendTo[Liste, {Farbe, Disk[{i, dimensionen[[2]] - j},1/2]}]];]];

Ergebnis = Graphics[Liste]

Die Anwendung ist wie oben, nur dass man keine Farbe mehr angeben muss.

PS: Das Schreiben dieses Beitrags hat übrigens länger gedauert als das Schreiben des Codes.
 
  • Gefällt mir
Reaktionen: KOJOTE
Ich bin leider noch nie mit einem solchen code, dessen anwendung und ausführung in kontakt gekommen.
gibt es eine möglichkeit wie man das als dummy "zeitnah" erlernen kann, und was benötigt man dafür?

Weitere frage: in welche formate kann man das abspeichern bzw. welches endformat ergäbe sich durch den code?
nicht jede stickmaschine unterstützt jedes format...

Alternativ, welche bezahlbare programme gibt es um solche dateien herzustellen?
Ich frage, da meine Frau eine Stickmaschine Ihr eigen nennt, und gerne unabhängig und kreativer arbeiten möchte...
Das Programm darf auch für Windows verfügbar sein, bisher habe ich nur programme jenseits der 900€ gefunden..

Vielen Dank vorab!

P.S Sorry für Groß und klein und zeichensetzung - doofe angewohnheit in foren oder chats...
 
Naja, wirklich preisgünstig (für den nichtkommerziellen Einsatz kostet das ganze etwa 300 €, eine kostenlose Trial zum Ausprobieren ist vorhanden) ist Mathematica jetzt nicht und um damit effizient arbeiten zu könne, braucht es schon eine „mathematische Ader“ und Einarbeitungszeit, aber wie man an diesem Beispiel sieht, kann man damit erstaunlich viele Probleme lösen.
Wenn es nur um die Anwendung des Codes geht, das ist schnell erledigt. Code kopieren und einfügen, den Importpfad angepasst und schon kann man ihn ausführen.

Weitere frage: in welche formate kann man das abspeichern bzw. welches endformat ergäbe sich durch den code?
nicht jede stickmaschine unterstützt jedes format...

Das Endergebnis ist eine Vektorgraphik bestehend aus farbigen Kreisscheiben (gefüllten Kreisen). Folglich bieten sich hier Vektorgraphikformate an, eps, pdf, svg was auch immer. Man kann das ganze natürlich auch wieder (fein) rastern und dann als Bild ausgeben. Allerdings habe ich keine Ahnung was eine Stickmaschine daraus macht, selbst wenn diese das Dateiformat unterstützen sollte.
 
Ich habe solche Muster früher händisch in Excel oder Apple Works Tabellen erstellt. :faint:. Dann als Strickmuster.
 
Zurück
Oben Unten