Czasami, gdy się nudzę, biorę trochę tekstu i wypełniam „dziury” w literach. Ale czy wypełnianie dziur nie jest najbardziej nudną rzeczą, jaką możesz zrobić? Myślę, że powinniśmy to zautomatyzować , abyśmy mogli lepiej wykorzystać nasz czas.
Obowiązują standardowe zasady gry w golfa .
Wejście
Ciąg zawierający sekwencję znaków alfanumerycznych (az, AZ, 0-9) i spacje.
Wynik
Obraz zawierający wyrenderowany ciąg i wypełnione dziury. Możesz użyć dowolnej czcionki czytelnej dla człowieka, o ile nadal wymaga wypełnienia dziur. Możesz zapisać obraz do pliku i.png
(w formacie png) lub po prostu wyświetlić obraz.
Właściwości obrazu:
- Czarny tekst
- Białe lub przezroczyste tło
- Wyściółka:
- Wymiary obrazu mogą być maksymalnie dwa razy większe niż wymiary tekstu
- Wypełnienie powinno być tego samego koloru co tło, białe lub przezroczyste
Przykład
Wejście: Example text
code-golf
graphical-output
image-processing
Hannes Karppila
źródło
źródło
Odpowiedzi:
Bash, 135 bajtów
Używa ImageMagick (
convert
).Przykładowe dane wyjściowe:
Wyłączenie antyaliasingu jest wymagane, ponieważ w przeciwnym razie antyaliasingowe części wewnętrzne liter nie wypełniłyby się wodą. Wymagane jest także ustawienie czcionki na duży rozmiar, ponieważ niektóre czcionki mają „luki” w literach, które powinny mieć „dziury” przy małych rozmiarach czcionek (w moich testach
a
nie były wypełnione przy domyślnym małym rozmiarze czcionki).źródło
Mathematica, 83 bajty
Funkcja bez nazwy, która pobiera ciąg znaków jako dane wejściowe i zwraca obiekt obrazu. Chodzi o to, aby
DeleteBorderComponents
zachować tylko dziury, a następnie odjąć je od oryginalnego obrazu.źródło
ImageSubtract
iDeleteBorderComponents
.SmileBASIC, 38 bajtów
Rysuje czarny * tekst na czarnym tle, a następnie używa wbudowanej funkcji „wiadro z farbą”, aby wypełnić wszystko poza tekstem białym.
* (faktycznie użyłem
00000008
, który wygląda identycznie jak przezroczysty, ale jest traktowany jako inny kolor)źródło
Trochę zjada tekst, ale jest też rozwiązanie oparte na płótnie:
JS, 610 bajtów
źródło
Postscript 273
[został pierwotnie opublikowany w powiązanym wyzwaniu , ale nigdy nie wdrożyłem liczenia.]
Renderuje każdą postać normalnie, aby uzyskać prawidłowe odstępy, aby przejść dalej, a następnie bierze wszystkie krzywe opisujące glif i wypełnia każdą z nich. Zazwyczaj krzywe wewnętrzne i zewnętrzne są opisywane w różnych orientacjach, więc wypełnienie sprawi, że wnętrze pozostanie puste, niezależnie od tego, czy używa się niezerowej reguły uzwojenia, czy reguły parzystej nieparzystej. Wypełniając osobno, wszystko się zapełni.
Zębaty:
Stosowanie. Obiekt string powinien znajdować się na stosie podczas uruchamiania programu. Dodatkowe skalowanie tylko po to, aby było widoczne.
źródło