Manchmal, wenn ich gelangweilt bin, nehme ich Text und fülle die "Löcher" in den Buchstaben. Aber ist das Füllen der Löcher nicht das Langweiligste, was Sie tun können? Ich denke, wir sollten es automatisieren , damit wir unsere Zeit besser nutzen können.
Es gelten die Standardregeln für Code-Golf .
Eingang
Eine Zeichenfolge mit alphanumerischen Zeichen (az, AZ, 0-9) und Leerzeichen.
Ausgabe
Bild mit gerenderter Zeichenfolge und gefüllten Löchern. Sie können jede für Menschen lesbare Schriftart verwenden, solange die Löcher noch gefüllt werden müssen. Sie können das Bild entweder in einer Datei i.png
(im PNG-Format) speichern oder es nur anzeigen.
Bildeigenschaften:
- Schwarzer Text
- Weißer oder transparenter Hintergrund
- Polsterung:
- Die Abmessungen des Bildes können maximal das Zweifache der Abmessungen des Textes betragen
- Die Polsterung sollte die gleiche Farbe wie der Hintergrund haben, entweder weiß oder transparent
Beispiel
Eingang: Example text
code-golf
graphical-output
image-processing
Hannes Karppila
quelle
quelle
Antworten:
Bash, 135 Bytes
Verwendet ImageMagick (
convert
).Beispielausgabe:
Das Deaktivieren von Antialiasing ist erforderlich, da ansonsten die Antialiasing-Innenbereiche der Buchstaben nicht überflutet würden. Das Festlegen einer großen Schriftgröße ist ebenfalls erforderlich, da einige Schriftarten "Lücken" in Buchstaben aufweisen, die bei kleinen Schriftgrößen "Löcher" aufweisen sollten (in meinen Tests wurde die
a
Schrift nicht mit der standardmäßigen kleinen Schriftgröße ausgefüllt).quelle
Mathematica, 83 Bytes
Eine unbenannte Funktion, die eine Zeichenfolge als Eingabe verwendet und ein Bildobjekt zurückgibt. Die Idee ist
DeleteBorderComponents
, nur die Löcher zu behalten und diese dann vom Originalbild zu subtrahieren.quelle
ImageSubtract
und gewinntDeleteBorderComponents
.SmileBASIC, 38 Bytes
Zeichnet schwarzen * Text auf den schwarzen Hintergrund und füllt dann mit der integrierten Funktion "Farbeimer" alle Bereiche außerhalb des Texts mit Weiß.
* (tatsächlich habe ich verwendet
00000008
, was identisch mit transparent aussieht, aber als eine andere Farbe behandelt wird)quelle
Frisst ein bisschen am Text vorbei, aber es gibt auch eine Canvas-basierte Lösung:
JS, 610 Bytes
quelle
Nachschrift 273
[wurde ursprünglich für die zugehörige Herausforderung gepostet , aber ich habe die Zählung nie implementiert.]
Rendert jedes Zeichen normal, um den richtigen Abstand zum Vorrücken zu erhalten, und nimmt dann alle Kurven, die die Glyphe beschreiben, und füllt jede Kurve aus. Normalerweise werden die inneren und äußeren Kurven mit unterschiedlichen Ausrichtungen beschrieben, sodass eine Füllung den Innenraum leer lässt, unabhängig davon, ob die Wicklungsregel ungerade oder ungerade ist. Beim separaten Befüllen wird alles gefüllt.
Eingerückt:
Verwendung. Es wird erwartet, dass sich das Zeichenfolgenobjekt auf dem Stapel befindet, wenn das Programm gestartet wird. Zusätzliche Skalierung, um es sichtbar zu machen.
quelle