~/copiona /degradación digital de un otoño artificial
Degradación digital de un otoño artificial.
Memoria:
Degradar con el software generalmente está vinculado a la compresión y pérdida de calidad. como bien dice hito steyerl en En defensa de la imagen pobre
“La imagen pobre es una copia en movimiento. Su calidad es mala, su resolución deficiente. Se deteriora conforme acelera. Es el fantasma de una imagen, una vista previa, una miniatura, una idea errante, una imagen itinerante distribuida de forma gratuita, exprimida a través de lentas conexiones digitales, comprimida, reproducida, extraída, remezclada, así como copiada y pegada en otros canales de distribución.”
Una imágen de mala calidad es una imagen pobre, despojada del esplendor de la definición, una lumpenproletaria de la sociedad de clases.
pero a partir de esta máxima muy hermosa que escribe hito, estuve pensando en realizar un proceso de degradación digital sobre hojas escaneadas (después de pasar el otoño del 2021 mirando y juntando hojas degradadas de la huerta que habité). En la construcción conceptual, junto a un grupo hermoso en el taller de “línea de fuga” con [julieta marra, francis, julia, danna, delfi, manuel y tone ] jugando con la impresión con la ticketera parecía interesante imprimir las hojas escaneadas.
En la línea de la degradación no me interesaba usar el recurso de la pixelación, sino que parte del concepto era poder emular un poco esta fascinación por los patrones de construcción de hojas que tienen las plantas [1,1,2,3,5,8,13] :D.
Usando el histórico ascii art
como inspiración y seleccionando una paleta de caracteres específica es posible hacer un acercamiento. degradar la imagen en síntesis, en pérdida de información pero sin perder resolución. una degradación que intenta simular el proceso natural. imprimir el otoño con hardware, degradar las hojas con software.
ahora lo divertido, cómo se hace todo esto?
Receta [linux]:
Paleta de caractéres:
PALETTE : ▓ ▒ ░ ─└ ┼ ┘├ ┐┌ ┤ │ | -
la gema que use es:
gema: https://rubygems.org/gems/image2ascii
instalar con ruby: gem install image2ascii
repo: https://github.com/michaelkofron/image2ascii#image2ascii
dependencias:
$ sudo dnf install ImageMagick
$ sudo dnf install ImageMagick-devel
$ gem install image2ascii
$ gem install imagemagick
$ gem install rmagick
$ gem install raimbow
luego pasar imagen a caractéres ej:
image2ascii $archivo.png -t 30 -g -x '▓ ▒ ░ ┐┌ ┤ │ | - . ~'
con -t
podés indicar el % de pantalla que querés que ocupe el resultado de la transformación
con -g
utiliza escala de grises (por defecto es a color)
con -x
podés indicar los caractéres específicos para usar.
Nombres
impresora: 80 hoja$: h$.png hoja en caractéres: h$-[1,2,3,4,5]
Imprimir desde terminal
pl -d 80 -o fit-to-page $archivo
-o fit-to-page
como flag para que la imagen se ajuste al ancho de lo imprimible
Es posible imprimir muchos archivos uno seguido del otro con
lp -d 80 -o fit-to-page h1.png h2.png h3.png
Ejemplos que usé
lp -d 80 -o fit-to-page h1.png h1-1.png h1-2.png h1-3.png h1-4.png h1-5.png
lp -d 80 -o fit-to-page h2.png h2-1.png h2-2.png h2-3.png h2-4.png h2-5.png
lp -d 80 -o fit-to-page h3.png h3-1.png h3-2.png h3-3.png h3-4.png h3-5.png
lp -d 80 -o fit-to-page h4.png h4-1.png h4-2.png h4-3.png h4-4.png h4-5.png
lp -d 80 -o fit-to-page h5.png h5-1.png h5-2.png h5-3.png h5-4.png h5-5.png
Primer hoja h1
Con lo siguiente lo que hacemos es la conversion de la imagen a caractéres , guardarla en un archivo h.temp.txt y luego enviarla a la impresora.
Es posible imprimir de esta forma directamente. lo que sucede es que la ticketera tiene un ancho específico (50mm) donde entran una cantidad especifica de caractéres, entonces la version de 80% contiene muchisimos más caractéres que la version de 3%. lo cual hace que se impriman sin forma. o sin la forma igual a la hoja original. entonces hay forma de escalar la cantidad de caractéres por pulgada a imprimir :D. por eso despues de lp -d 80
esta la flag -d cpi=68 -0 lpi=64
llegar a esto me llevo varios rollos de pruebas :v
80%
image2ascii h1.png -t 80 -x '▓ ▒ ░ ─└ ┼ ┘├ ┐┌ ┤ │ | -' > h-temp.txt && lp -d 80 -o cpi=68 -o lpi=64 h-temp.txt
50%
image2ascii h1.png -t 50 -x '▓ ▒ ░ ─└ ┼ ┘├ ┐┌ ┤ │ | -' > h-temp.txt && lp -d 80 -o cpi=48 -o lpi=22 h-temp.txt
30%
image2ascii h1.png -t 30 -x '▓ ▒ ░ ─└ ┼ ┘├ ┐┌ ┤ │ | -' > h-temp.txt && lp -d 80 -o cpi=27 -o lpi=13.5 h-temp.txt
20%
image2ascii h1.png -t 20 -x '▓ ▒ ░ ─└ ┼ ┘├ ┐┌ ┤ │ | -' > h-temp.txt && lp -d 80 -o cpi=18 -o lpi=8 h-temp.txt
10%s
image2ascii h1.png -t 10 -x '▓ ▒ ░ ─└ ┼ ┘├ ┐┌ ┤ │ | .' > h-temp.txt && lp -d 80 -o cpi=9 -o lpi=4 h-temp.txt
3% pantalla
image2ascii h4.png -t 3 -x '▓ ▒ ░ ─└ ┼ ┘├ ┐┌ ┤ │ | .' > h-temp.txt && lp -d 80 -o cpi=3 -o lpi=1.5 h-temp.txt
resultado
--------- ┘├---------------------
--------|──└┌--------------------
------- ── ░─--------------------
------ ░──░▓┼ -------------------
-----| └└└─ └┐ ----------------
-----└─ └└─ └░┘|--------------
----├░─ ┼┼ └ ┼┼┼ ------------
--- ─└ ┼ ─ └┼ ┼ ┘ ----------
--│▒░─ ┼ ┼ ─ ┼┼├ ┼ ┌---------
- ░─└ ┼┼ ┼┘├┘┘┘┘┘┼ |-------
- ▒ └└ ┼┘├├├┘┘ ┼ ─░ ------
-┼ ─ └ ┼ ┼ ─├┘┘├┘ ┼┼┼ └ ├-----
|▒ ─└ ┘┘┘┘ ├ ┘┘┘ ├┘ ┘ ┼ ░ ----
░└ ┼ ┼ ┘┘┘┘─├├├├├├ ┘├┼┼ ┼└ ---
┘ ┼┼┼ ┘┘├├┘├ ─ ├┐┘┘┐├├├ ├ |--
┌ └ ┼┘┘├├┐├ ┐ ├┐ ┘┘├├├ ├┘┼ ░├--
─ ┼ ├├├ ┘ ┐ ┘├├ ├┘┘┼ --
-|└ └ ┘ ┘┘ ┌ ┐ ┘┘┘ ├├┘ ─ -
---- ┘▒ ┼┘┘┘┘├ ├├├┘├┘├├├ ┼ ┼-
---|┘ ░─└─ └└┼┘└┼├┘├ ┘├├ ┘┼ -
---│ └ └└└ ┼ ┘ ┘┘┘┘├┘├ ┌├ └▒
-- └ └└└ ┼┼┼ ┼ ┼┼┼ ├┘├┘┘┘┼ ▒
--┤ └ └ └ ▒┼ ├┘┘ ├ ┼┼ └▒
--┤░─└└ └ ┼┼ └┼ ├┘┘┘┘ ├┘┘├ ┼┼└▒│
--| ─└└└ └┼┼┼ ┼ ┘ ┘┘┘ ┘└ └└ -
-- └└ ┼ ┼└└ ┘├┘├┘├┘┘ ┼ -
---├ └┼┼┼┼ ▓ ┘ ├┘┼┼┼ ┼ ┼--
---|░─ ┼ ┼┼ └ ▓┘┘┼├├┘ ┘ ─ --
---- ─ ┼┼┼┼ └└┼▓├ ┐┘ ┼ └ ┼└ │---
-----|┘░ ─ └──└ ┘├ ┼ ─└─ ┤----
-------┼└ ┼└└─▒┼ └└ ─░│-----
------- ─└┼ ┼ ░ ┼┼ ──░─|------
-------- ┼└┼┼ ─▒─┘┼ └─░░┌--------
---------- └ ─▓└┼┼ ░░├ ---------
-----------│└░░▓─┼─ ┌ -----------
------------ ░▓─└┐--------------
--------------| ▒|---------------
--------------┐▓└----------------
-------------| ----------------
------------ ▒ -----------------
------------ ┼ ------------------
Un registro de cómo pasó esto en diferentes lugares
Proceso
Muestra tranza
Muestra brc
Faltan más que @digicronos me tiene que pasar <3
Lo que resolví luego es hacer una exportación en buena resolución (300dpi) de cada una de las imágenes convertidas desde el archivo en .svg a .png para luego poder llamarlas directamente al imprimir. acá van las pruebas
Imágenes de procesos de degradación:
Hoja 1
lp -d 80 h1.png
lp -d 80 h1-1.png
lp -d 80 h1-1.png
lp -d 80 h1-1.png
lp -d 80 h1-1.png
lp -d 80 h1-1.png
hoja 2
lp -d 80 h2.png
lp -d 80 h2-1.png
lp -d 80 h2-1.png
lp -d 80 h2-1.png
lp -d 80 h2-1.png
lp -d 80 h2-1.png
hoja 3
lp -d 80 h3.png
lp -d 80 h3-1.png
lp -d 80 h3-1.png
lp -d 80 h3-1.png
lp -d 80 h3-1.png
lp -d 80 h3-1.png
hoja 4
lp -d 80 h4.png
lp -d 80 h4-1.png
lp -d 80 h4-1.png
lp -d 80 h4-1.png
lp -d 80 h4-1.png
lp -d 80 h4-1.png
hoja 5
lp -d 80 h5.png
lp -d 80 h5-1.png
lp -d 80 h5-1.png
lp -d 80 h5-1.png
lp -d 80 h5-1.png
lp -d 80 h5-1.png
update 18.01.2023
y qué pasa si uso estos caracteres:
╰╯╰╭╭╮╰╰╮╰╰╭╭╭║╮╯╮╭╭═╰╭╮╭╯╰╭╰╰╮╰╰╯╓╭╯╭╮╰┼╭╮╨┐╰╰╓╯╮╯╮╯╯╛╮├╭╮╮╪╰╞╦╯╭╭╒╭╢┼═╰╟╮╭╰╩┘╖╭╰╩╰╭╰╛╨└╧╮╰┘╮╭╭╣╮╜╛╮╟╜═╞╯╕└╵╔╯╷╓╧╵╔╖╧┼╫║║╨┼╧╨┬┬═╣╦╤╝╓╥├╙╠╫╠