A veces, cuando estoy aburrido, tomo un texto y relleno los "agujeros" en las letras. ¿Pero no es llenar los agujeros lo más aburrido que puedes hacer? Creo que deberíamos automatizarlo , para poder usar nuestro tiempo mejor.
Aplican reglas estándar de código de golf .
Entrada
Una cadena que contiene una secuencia de caracteres alfanuméricos (az, AZ, 0-9) y espacios.
Salida
Imagen que contiene la cadena renderizada y los agujeros rellenados. Puede usar cualquier fuente legible por humanos siempre que sea necesario llenar los agujeros. Puede guardar la imagen en un archivo i.png
(en formato png) o simplemente mostrar la imagen.
Propiedades de imagen:
- Texto negro
- Fondo blanco o transparente
- Relleno:
- Las dimensiones de la imagen pueden ser como máximo dos veces las dimensiones del texto.
- El relleno debe ser del mismo color que el fondo, blanco o transparente.
Ejemplo
Entrada: Example text
code-golf
graphical-output
image-processing
Hannes Karppila
fuente
fuente
Respuestas:
Bash, 135 bytes
Utiliza ImageMagick (
convert
).Salida de muestra:
Se requiere deshabilitar el antialiasing porque, de lo contrario, las partes interiores antialias de las letras no inundarían el relleno. También es necesario establecer la fuente en un tamaño grande porque algunas fuentes tienen "espacios" en las letras que deberían tener "agujeros" en tamaños de fuente pequeños (en mis pruebas,
a
no se rellenó con el tamaño de fuente pequeño predeterminado).fuente
Mathematica, 83 bytes
Una función sin nombre que toma una cadena como entrada y devuelve un objeto de imagen. La idea es usar
DeleteBorderComponents
para mantener solo los agujeros y luego restarlos de la imagen original.fuente
ImageSubtract
yDeleteBorderComponents
.SmileBASIC, 38 bytes
Dibuja texto negro * en el fondo negro, luego usa la función integrada "cubo de pintura" para llenar todo lo que esté fuera del texto con blanco.
* (en realidad lo usé
00000008
, que parece idéntico a transparente, pero se trata como un color diferente)fuente
Come un poco el texto, pero también hay una solución basada en el lienzo:
JS, 610 bytes
fuente
Posdata 273
[se publicó originalmente en el desafío relacionado , pero nunca implementé el conteo].
Representa cada personaje normalmente, para obtener el espacio correcto para avanzar, luego toma todas las curvas que describen el glifo y llena cada una. Normalmente, las curvas interior y exterior se describen con diferentes orientaciones, por lo que un relleno dejará el interior vacío, independientemente de si está utilizando la regla de devanado distinto de cero o la regla impar. Llenando por separado, todo se llena.
Sangrado:
Uso. Se espera que el objeto de cadena esté en la pila cuando se inicia el programa. Escalado adicional solo para hacerlo visible.
fuente