GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo convertir imágenes a formato ASCII en Linux

Esta guía enseña cómo convertir imágenes a formato ASCII en Linux. Para el propósito de esta tarea, usaremos Jp2a . Jp2a es una herramienta de línea de comandos que le ayuda a convertir las imágenes dadas al formato de caracteres ASCII. Puede especificar una combinación de archivos de imagen y URL y la herramienta Jp2a los convertirá todos en caracteres ascii al instante. Jp2a tiene muchas opciones útiles para manipular las imágenes. ¡Aquí hay un par de cosas que Jp2a puede hacer por ti!

  • leer imágenes desde la entrada estándar,
  • establecer el modo de fondo como claro u oscuro,
  • establecer borde,
  • establecer alto y ancho de salida,
  • establecer una dimensión personalizada para las imágenes de salida,
  • girar la imagen de salida vertical u horizontalmente,
  • utilizar caracteres específicos al producir la imagen ASCII de salida,
  • invertir imágenes,
  • descargar imágenes de la web y convertirlas,
  • Y muchos.

Instalar Jp2a en Linux

Jp2a está empaquetado para muchas distribuciones de Linux y está disponible en los repositorios predeterminados.

Para instalar Jp2a en Arch Linux y sus variantes como Manjaro Linux, ejecute:

$ sudo pacman -S jp2a

En Debian, Ubuntu, Linux mint:

$ sudo apt install jp2a

En Fedora:

$ sudo dnf install jp2a

En CentOS/RHEL:

$ sudo yum install epel-release
$ sudo yum install jp2a

En openSUSE:

$ sudo zypper install jp2a

Convertir imágenes a formato ASCII en Linux

Para convertir una imagen JPG/JPEG determinada a formato de caracteres ASCII, simplemente ejecute:

jp2a <path-to-image>

Ejemplo:

$ jp2a arch.jpg

Salida de muestra:

MWXMWXWWXWWXWWXWWXWMXWMXNMNNMNNMNNMNNMNXWNXMWXWWXWWXWWXWMXWMXNMXNMNNMNNMNNMNXMNXMW
NWWNNWNNWNNWNNWNNWWNWWNWWNWWNWWNWWNWWNWWdxWNNWNNWNNWNNWNNWWNWWNWWNWWNWWNWWNWWNWWNN
WWNWWNWWNWWNWWNWWNWWNWWNNWNNWNNWNNWNNWNkccxWWNWWNWWNWWNWWNWWNNWNNWNNWNNWNNWNNWNNWW
WWNWWNWWNWWNWWNWWNWWNWWNWWNWWNNWNNWNNW0ccccOWNWWNWWNWWNWWNWWNWWNWWNNWNNWNNWNNWWNWW
NWWNNWNNWNNWNNWNNWWNWWNWWNWWNWWNWWNWWKlccccc0WNNWNNWNNWNNWWNWWNWWNWWNWWNWWNWWNWWNN
WWNWWNWWNWWNWWNWWNWWNWWNNWNNWNNWNNWNXlccccccl0WWNWWNWWNWWNWWNNWNNWNNWNNWNNWNNWNNWW
WWNWWNWWNWWNWWNWWNWWNWWNWWNNWNNWNNWNocccccccclXWNWWNWWNWWNWWNWWNNWNNWNNWNNWNNWWNWW
NWWNNWNNWNNWNNWNNWWNWWNWWNWWNWWNWWNdccccccccccoXWNNWNNWNNWWNWWNWWNWWNWWNWWNWWNWWNN
WWNWWNWWNWWNWWNWWNWWNWWNNWNNWNNWNNkccccccccccccoXWWNWWNWWNWWNNWNNWNNWNNWNNWNNWNNWW
WWNWWNWWNWWNWWNWWNWWNWWNWWNWWNNWNkccccccccccccccdNWNWWNWWNWWNWWNWWNNWNNWNNWNNWWNWW
NWWNNWNNWNNWNNWNNWWNWWNWWNWWNWWNkccccccccccccccccdNWNNWNNWWNWWNWWNWWNWWNWWNWWNWWNN
WWNWWNWWNWWNWWNWWNWWNWWNNWNNWNNWXxccccccccccccccccdXWWNWWNWWNNWNNWNNWNNWNNWNNWNNWW
WWNWWNWWNWWNWWNWWNWWNWWNWWNNWNOoOXNklccccccccccccccdNWNWWNWWNWWNNWNNWNNWNNWNNWWNWW
NWWNNWNNWNNWNNWNNWWNWWNWWNWWNOccccok0kdcccccccccccccoXWNNWWNWWNWWNWWNWWNWWNWWNWWNN
WWNWWNWWNWWNWWNWWNWWNWWNWWNNOcccccccccodoccccccccccccoXWWNWWNWWNNWNNWNNWNNWNNWNNWW
WWNWWNWWNWWNWWNWWNWWNWWNWWNkccccccccccccccccccccccccccoNWNWWNWWNWWNNWNNWNNWNNWWNWW
NWWNWWNNWNNWNNWNNWWNWWNWWNkccccccccccccccccccccccccccccoXWWNWWNWWNWWNWWNWWNWWNWWNN
WWNWWNWWNWWNWWNWWNWWNWWNNkccccccccccccccccccccccccccccccoKWWNWWNNWNNWNNWNNWNNWWNWW
WWNWWNWWNWWNWWNWWNWWNWWNxcccccccccccccccccccccccccccccccclXWNNWNNWNNWNNWNNWNNWNNWW
NWWNNWNNWNNWNNWNNWWNWWXdcccccccccccccccccccccccccccccccccclKWWNWWNWWNWWNWWNWWNWWNN
WWNWWNWWNWWNWWNWWNWWNNdccccccccccccccccccccccccccccccccccccl0NWNNWNNWNNWNNWNNWNNWW
WWNWWNWWNWWNWWNWWNWWXoccccccccccccccccdx0Oxdlcccccccccccccccl0WNWWNNWNNWNNWNNWWNWW
NWWNWWNNWNNWNNWNNWWKlcccccccccccccclkXWWNWWNNOlcccccccccccccccOWWNWWNWWNWWNWWNWWNN
WWNWWNWWNWWNWWNWWNKlcccccccccccccclKNWWNWWNWWNXocccccccccccccccONWNNWNNWNNWNNWWNWW
WWNWWNWWNWWNWWNWW0lcccccccccccccclXNNWNNWWNWWNWNoccccccccccccccckWNNWNNWNNWNNWNNWW
NWWNNWNNWNNWNNWNkccccccccccccccccONWWNWWNWWNNWNNXccccccccccccccccdNWNWWNWWNWWNWWNN
WWNWWNWWNWWNWWNkcccccccccccccccclNWNNWWNWWNWWNWWNdcccccccccloolcccdNWNNWNNWNNWWNWW
WWNWWNWWNWWNWWxcccccccccccccccccoNWNNWWNWWNWWNWWNkcccccccccccoxO0OddNNNWNNWNNWNNWW
NWWNNWNNWNNWXdccccccccccccccccccoWNWWNWWNWWNNWNNWkcccccccccccccclxKNXWWNWWNWWNWWNN
WWNWWNWWNWWXoccccccccccccccccccccXWNNWWNWWNWWNWWNdcccccccccccccccccoOXNWNNWNNWWNWW
WWNWWNWWNWXocccccccccccccccldxk00XWNNWNNWWNWWNWWNK0kxdlcccccccccccccccxKNNWNNWNNWW
NWWNNWNNWKlccccccccccldxO0NWNWWNWWNWWNWWNWWNNWNNWNNWNNWXK0xdlccccccccccl0WNWWMMMMM
WWNWWNWWOccccccccoxOXNWNWWNWWNNWNNWNNWWNWWNWWNWWNWWNWWNWWNWWNKOxoccccccccOWNWMMMMM
WWNWWNWOcccccox0NNWWNWWNNWNNWNNWNNWNNWWNWWNWWNWWNWWNWWNWWNWWNNWNNN0xoccccckNNMMMMM
NWWNNWkccok0XNWNNWWNWWNWWNWWNWWNWWNWWNWWNWWNNWNNWNNWNNWNNWWNWWNWWNWWNN0xocckWNWWNW
WWNWNxdOXWWNWWNWWNWWNWWNWWNNWNNWNNWNNWWNWWNWWNWWNWWNWWNWWNWWNWWNWWNNWNNWNXOxxNNNWW
NWWNXNNNWNNWNNWNNWNNWWNWWNWWNWWNWWNWWNWWNWWNNWNNWNNWNNWNNWNNWWNWWNWWNWWNWWNWNXWWNN

Sencillo, ¿no?

Puede especificar varias imágenes y convertirlas todas de una sola vez.

$ jp2a img1.jpg img2.jpg

Este comando convierte las imágenes dadas a ASCII y las mostrará una tras otra.

Como ya dije, Jp2a tiene muchas opciones y banderas para manipular las imágenes de entrada. Veamos el uso de algunas opciones con ejemplos.

Leer imágenes desde la entrada estándar

Para leer imágenes desde la entrada estándar e imprimir los caracteres ASCII en la salida estándar, utilice tubería comando como a continuación.

$ cat arch.jpg | jp2a -

Tenga en cuenta el símbolo de guión (-) al final.

Escribir la salida en un archivo

En lugar de mostrar la imagen ASCII en la salida estándar, puede escribirla en un archivo como se muestra a continuación.

$ jp2a arch.jpg --output=arch_ascii

Este comando agregará la salida ASCII en un archivo de texto llamado arch_ascii . Puede ver el contenido del archivo usando el comando "cat":

$ cat arch_ascii

Imprimir imágenes con altura/anchura específicas

Puede convertir la imagen a formato ASCII e imprimirla con un alto o ancho específico de su elección.

Para imprimir usando una altura específica, por ejemplo, 30 filas, simplemente haga lo siguiente:

$ jp2a --height=30 arch.jpg

El ancho se calculará automáticamente a partir de la relación de aspecto de la imagen.

Del mismo modo, para especificar el ancho, ejecute:

$ jp2a --weight=30 arch.jpg

También puede combinar ambas opciones e imprimir la imagen.

$ jp2a --height=20 --width=40 arch.jpg

Imprimir imágenes en formato ASCII en X columnas y Y filas

El siguiente comando convierte el archivo de imagen dado en ASCII e imprime la salida en 50 columnas y 30 filas.

$ jp2a --size=50x30 arch.jpg

Salida de muestra:

Establecer borde en caracteres ASCII

Si desea establecer un borde alrededor de la salida ASCII, use borde opción como la siguiente:

$ jp2a --border --size=50x30 arch.jpg

Salida de muestra:

Imprimir imágenes con fondo claro/oscuro

Jp2a tiene opciones para imprimir los caracteres ASCII en fondos claros y oscuros.

$ jp2a --background=light arch.jpg
$ jp2a --background=dark arch.jpg

Imprimir imágenes en formato ASCII en fondo oscuro

Si ve una imagen con un fondo blanco, pero está usando una pantalla con caracteres claros sobre un fondo oscuro, debe invertir la imagen usando el invertir bandera.

$ jp2a arch.jpg --invert

Salida de muestra:

  .  .  .  .  .  .  .  .               .  .  .  .  .  .  .  .  .            .  .  
                                        :;                                        
                                       ,oo;                                       
                                      .oooo'                                      
                                     .looooo.                                     
                                    .looooool.                                    
                                    cooooooool.                                   
                                   :ooooooooooc.                                  
                                  ,ooooooooooooc.                                 
                                 ,oooooooooooooo:                                 
                                ,oooooooooooooooo:                                
                                .;oooooooooooooooo:.                              
                              'c'. ,loooooooooooooo:                              
                             'ooooc,.,:oooooooooooooc.                            
                            'oooooooooc:cooooooooooooc.                           
                           ,ooooooooooooooooooooooooooc                           
                          ,ooooooooooooooooooooooooooooc.                         
                         ,ooooooooooooooooooooooooooooooc.                        
                        ;ooooooooooooooooooooooooooooooool.                       
                      .:ooooooooooooooooooooooooooooooooool.                      
                      :ooooooooooooooooooooooooooooooooooool.                     
                    .coooooooooooooooo:;.';:loooooooooooooool.                    
                   .looooooooooooool,.       'looooooooooooooo'                   
                  .looooooooooooool.          .cooooooooooooooo'                  
                 .looooooooooooool.             cooooooooooooooo,                 
                ,oooooooooooooooo'              .oooooooooooooooo:                
               ,ooooooooooooooool                :ooooooooolcclooo:               
              ;oooooooooooooooooc                ,oooooooooooc;'.'::              
            .:ooooooooooooooooooc                ,ooooooooooooool;. .             
           .coooooooooooooooooooo.               :oooooooooooooooooc'.            
          .coooooooooooooool:;,...               ..,;:looooooooooooooo;.          
         .looooooooool:;'.                             ...;:looooooooool.         
        'ooooooooc;'.                                        .';coooooooo'        
       'oooooc;.                                                  .;cooooo,       
      ,ooc,..                                                         .;coo,      
     ;:'.                                                                .';;     
    .                                                                        .

Imprime imágenes solo con caracteres específicos

En lugar de imprimir la imagen con los caracteres predeterminados, puede usar algunos caracteres personalizados de su elección.

$ jp2a --size=50x30 --chars=" [email protected]@" arch.jpg

Descargar imágenes directamente desde Internet

No solo imágenes locales, es posible descargar directamente las imágenes de Internet y convertirlas a ASCII.

Para descargar imágenes directamente de Internet e imprimirlas en formato ASCII, ejecute:

$ jp2a --size=50x30 https://upload.wikimedia.org/wikipedia/commons/d/dd/Linux_logo.jpg

Alternativamente, use curl o wget programas para descargar las imágenes y jp2a leerá la imagen desde la entrada estándar como se muestra a continuación.

$ curl -s https://upload.wikimedia.org/wikipedia/commons/d/dd/Linux_logo.jpg | jp2a -

Convertir imágenes que no sean JPG/JPEG

¿Qué sucede si tiene un tipo de imagen diferente al JPG/JPEG? En ese caso, puede usar Convertir de ImageMagick herramienta como a continuación. ImageMagick está disponible en los repositorios predeterminados de muchas distribuciones de Linux.

En Arch Linux y sus variantes como Manjaro Linux:

$ sudo pacman -S imagemagick

En Debian, Ubuntu, Linux Mint:

$ sudo apt install imagemagick

Después de instalar ImageMagick, ejecute el siguiente comando para convertir la imagen de formato PNG dada a formato Jpeg/Jpg y luego convertirla a formato ASCII:

$ convert arch.png jpg:- | jp2a -

Tenga en cuenta el símbolo de guión (-) al final.

Del mismo modo, puede simplemente convertir cualquier formato de imagen a JPEG/JPG y luego convertirlo nuevamente a formato ASCII.

Producir salida HTML estricta

Jp2a tiene una opción para producir una salida XHTML 1.0 estricta.

$ jp2a --size=50x30 --html arch.jpg --output=arch.html

Salida de muestra:

<?xml version='1.0' encoding='ISO-8859-1'?>
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'  'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
<html xmlns='http://www.w3.org/1999/xhtml' lang='en' xml:lang='en'>
<head>
<title>jp2a converted image</title>
<style type='text/css'>
body {
background-color: black;
}
.ascii {
   font-family: Courier;
   color: white;
   font-size:8pt;
   font-weight: bold;
}
</style>
</head>
<body>
<div class='ascii'><pre>
MNWNWNWWNWNWNMXMNWNWNWWNNXWNWXMXWNWNWNNWNWNWXMXWNW
NWNWNWWWWNWNWNWNWNWNWWWWkkNWNWNWNWNWWWWWWNWNWNWNWN
NWNWNWWWWWWNWNWNWNWNWWWKccKWNWNWNWNWWWWWWNWNWNWNWN
NWNWNWWWWWWNWNWNWNWNWWNoccoNNWNWNWNWWWWWWNWNWNWNWN
WNWNWWWWWWNWNWNWNWNWWWOcccckWNWNWNWNWWWWNWNWNWNWNW
WNWNWWWWNWNWNWNWNWNWWXlcccccKNWNWNWNWWWWNWNWNWNWNW
WNWWWWWWWWNWNWNWNWWWNdcccccclNWNWNWWWWWWWWNWNWNWNW
NWNWNWWWWNWNWNWNWNWNOccccccccxNWNWNWWWWWWNWNWNWNWN
NWNWNWWWWWWNWNWNWNWXlccccccccc0WNWNWWWWWWNWNWNWNWN
WWWWWWWWWWWWWWWWWWNNkccccccccclXWWWWWWWWWWWWWWWWWW
WNWNWWWWNWNWNWNWNWxlkKdccccccccoNNWNWWWWNWNWNWNWNW
WNWNWWWWWWNWNWNWNOccccddocccccccxNWNWWWWNWNWNWNWNW
WWWWWWWWWWWWWWWWKccccccccccccccccOWWWWWWWWWWWWWWWW
NWNWNWWWWNWNWNWXlcccccccccccccccccKWWWWWWNWNWNWNWN
NWNWNWWWWNWNWNNdcccccccccccccccccclXNWWWWNWNWNWNWN
WWWWWWWWWWWWWWxccccccccccccccccccccdNWWWWWWWWWWWWW
WNWNWWWWWWNWNOccccccccccccccccccccccxNWWNWNWNWNWNW
WNWNWWWWWWNWKccccccccclx0OklcccccccccOWWNWNWNWNWNW
WWWWWWWWWWWXlccccccccoXWWWWXdccccccccc0WWWWWWWWWWW
NWNWNWWWWNNocccccccclNWWNWNWNocccccccclXWNWNWNWNWN
NWNWNWWWWNdcccccccccOWWWNWNWNKcccccccccoNNWNWNWNWN
WWWWWWWWNxccccccccccXWWWWWWWWNlcccccldlcoNWWWWWWWW
WNWNWWWWOcccccccccccNWWWWNWNWNocccccccx0O0NWNWNWNW
WNWNWWW0ccccccccccccXWWWWNWNWNlcccccccccdKNWNWNWNW
NWNWNWKlcccccccccodkXWWWNWNWNNkdocccccccccdKWNWNWN
NWNWNXlccccccdk0NNWNWWWWNWNWNWNWNN0kdcccccclXNWMMM
NWNWNoccclx0NNWNWNWNWWWWNWNWNWNWNWNWWN0xlccclXWMMM
WNWNdclkKNNWNWNWNWNWWWWWWNWNWNWNWNWWWWWWNKklcdNWMW
WNWkxKNWWWNWNWNWNWNWWWWWWNWNWNWNWNWNWWWWNWNWKxkWNW
NWXNNWWNWNWNWNWNWNWNWWNWNWNWNWNWNWNWNWWNWNWNWNNNWN
</pre>
</div>
</body>
</html>

Esto puede ser útil cuando desea ver los caracteres ASCII de una imagen en un navegador web.

Hay algunas opciones más disponibles, como voltear las imágenes en la dirección X e Y, configurar el peso de conversión de RGB a escala de grises, usar colores ANSI en la salida, usar la altura/anchura de la pantalla del terminal, etc. Consulte la sección de ayuda o las páginas man para aprender a úsalos.

Para obtener ayuda, ejecute:

$ jp2a --help
$ man jp2a

Lectura sugerida:


Linux
  1. Cómo convertir paquetes DEB en paquetes Arch Linux

  2. Cómo administrar los registros de contenedores de Linux

  3. Cómo convertir múltiples imágenes a PDF en Ubuntu Linux

  4. Cómo instalar ImageMagick en Amazon Linux

  5. ¿Cómo convertir caracteres hexadecimales a ASCII en el shell de Linux?

Cómo migrar máquinas virtuales de Virtualbox a máquinas virtuales KVM en Linux

Cómo convertir archivos PDF a formato EPUB usando Calibre en Linux

Cómo convertir por lotes imágenes PNG a formato JPG en Linux

Cómo convertir xlsx a formato CSV en Linux

Cómo convertir una página web a PDF en Linux

Cómo convertir PDF a imágenes PNG y viceversa en Linux