NorfiPC
NorfiPC » Inf » Generador ASCII

Convertir imágenes en dibujos y figuras del arte ASCII


Actualizado: 17 de noviembre del 2022
Por: Norfi Carrodeguas
Crear un dibujo con texto y caracteres usando una imagen o foto, para mostrarlo en documentos y páginas de internet. Códigos para hacer el generador que funciona con la librería GD de PHP.
Convertir imágenes en dibujos y figuras del arte ASCII
En esta página se muestran ejemplos de imágenes convertidas en figuras ASCII y explico cómo crear nuestras propias composiciones artísticas.
Los más emprendedores podrán de esta forma experimentar y crear todo tipo de figuras para compartir con amigos o publicar en internet.
En esta página originalmente compartía un formulario con el que era posible subir imágenes para convertirlas en dibujos ASCII, que posteriormente se podían copiar y pegar en documentos.
Debido al abuso de algunos usuarios que subían imágenes inadecuadas y al peligro del spam, tuve que retíralo.
No obstante explico en el artículo como crear una herramienta similar y muestro imágenes de ejemplo.


Imagen convertida a un dibujo ASCII


La siguiente imagen fue tomada como ejemplo para crear un dibujo ASCII.
Está en formato JPG y mide 160 por 254 pixeles.
Imagen para convertir en un dibujo ASCII
El dibujo creado se puede ver más abajo y se puede ampliar la página, para comprobar que está compuesta de los siguientes caracteres: @ - # - + - * - ; - : - , - ..
                                                                                                                                                        
                                                                                                                                                                
                                                                     ``..,,,,,,,...`    `                                                                       
                                                                 `,;*+#@#@@@@@@@####+*;:,``                                                                     
                                                             `,:+#@@@@@@@@@@@@@@@@@@@@@@@#+*:,`                                                                 
                                                           ,;+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#+:.`                                                             
                                                        `:+@@@@@@@@@@@@@@@@@@@##@@@@##@@@@@@@@@@@@#;,`                                                          
                                                      .;#@@@@@@@@@@@@@@@@@##@@#+#@@###@@@@@##@@@@@@@@#;.                                                        
                                                    .*@@@@@@@@@@@@@@@@@@#@@##@@+#####@@@@@@####@#@@@@@@@*,                                                      
                                                  .*@@@@@@@@@@#####@@@@@#@@###########@@@@@@@@@@+*+#@@@@@@+:                                                    
                                                .;#@@@@@@@@@@@@#####@@###################@@@@@@@##***#@@@@@@+:                                                  
                                              `:#@@@@@@@@@@@@@@@##+##@#+#################@@@@#@@@@@#*;*+@@@@@@+,                                                
                                             ,+@@@@@@@@@@@@@@@@@@########################@@@@###@@@@@#*;;#@@@@@@;.                                              
                                           .*@@@@@#########@@@@@@@####################@@###@@@###@@@@@##*:;#@@@@@#,                                             
                                          ,+@@@@@###@#########@@@@####################@@@@##@@@@###@@@#@@#*:*#@@@@@;                                            
                                        `;@@@@@@@@@@@@@@@@@#####@############+#@@@@##@@@@@@@#@@@@@##@@@##@@*;;+@@@@@+.                                          
                                       .+@@@@@#@@@@@#@@@@@@@@@############@#+#@@@@@@@@@@###@@@#*#@@###@@@#@@#*;+@@@@@+,       `                                 
                                      :@@@@@@@##########@@@#############+###@@@@@@@@@@@@@@##@@@+*+#@@##@@@##@#*;*#@@@@#,     `                                  
                                    `*@@@@@@@@@@#######################@+..;**##@@@@@@@@@@@###@@#**@@@##@@@##@@*;*#@@@@#:                                       
                                   .+@#+#+#@@@@@@@@#####################@+,.:****+@@@@@##@@@@##@@@+;#@@##@@@##@@+;;#@@@@@:                                      
                                  ,#@+****+##@@##@@@@##################+#@#;;+@@+**+#@@@@##@@@##@@@+;+@@##@@@##@@+;*#@@@@@,                                     
                                 :#@#@@@@##@@@@####@@################@@@@@@@+::+@@#*;+@@@@###@@##@@@#;*@@##@@@##@@#;;#@@@@#.                                    
                               `;@@@@@@@@@@@@@@@#################@@@@@@@@@@@@#*::+@@+**+#@@###@@##@@@#**@@##@@@##@@#;;#@@@@#.                                   
                              `*@@@@@@@@@@###@@@@###############@@@@@@@@#@@@@@@#;:;+@@+;*#@@@##@@##@@@#**@@#@@@@##@@#**@@@@@+`                                  
                             `;@@@@@@@@@@@##+###@############@@@@@@@@@@@###@@@@@@+;;*@@#*;+@@@##@@@#@@@#**@@#@@@##@@@+;*@@@@@;                                  
                            `*@@@@@@@@@@@@@@##############@@@@@@@@@@@@@@@@###@@@@@#*;*#@@+;*#@@##@@##@@@#**@@#@@@@#@@#+;+@@@@#,                                 
                           `+@@@@##@@@@@@@@@@##############@@@@#@@@@@@@@@@@@##@@@@@@+;;+@@+**#@@##@@##@@@@*+@##@@@#@@@@*;#@@@@+`                                
                          `#@#@#++**+#@@@##@@##############@@@@##@@@@@@@@@@@@@##@@@@@+;;*#@#*;+@@##@@##@@@#*+@#@@@@##@@#**#@#@@;      `                         
                         `#@##@@#@@++#@@@#################@@@@@@@@#+#@@@@@@@@@@@#@@@@@#*;+#@@*;+@@##@@##@@@#*#@#@@@##@@@#;+@@@@@.                               
                        `+@@@@@@@@@@@@@@@@##############@@@@@@@@@@#**+@@@@@@@@@@@##@@@@#*;*#@@+;+@@#@@@#@@@@+*@##@@@#@@@@+;+@@@@*                               
                       `+@@@@@@@@@@@@@#@@#############@@@@@@@@@@@@@@*;*@@@@@@@##@@##@@@@#*;+#@@#;+#@#@@##@@@@*+@#@@@##@@@@**@@@@@,                              
                      `*@@@@@@@@@@@@@#+########@@@###@@@@@@@@@@@@@@@@+::+@@@@@@@#@@##@@@@@+;*@@@#*+@#@@@##@@@#*###@@@##@@@#*+@@@@+                              
                      *@@@@@@@@@@@@@@@#++#######@@@@@@@@@@@@@@@@@@@@@@#;:*#@@@@@##@@##@@@@#+;+@@@#*+@#@@@##@@@++@##@@@#@@@@**@@@@@,                             
                     ;@@@@@@@@@@@@@@@@@##########@@@@@@@@@@@@@@@@@@@@@@#*:;#@@@@@##@@@##@@@#*;+@@@#++#@@@@#@@@#+###@@@#@@@@#*+@@@@*                             
                    :@@@@@@@@@@@###++#@@@######+#@*:#@@@@@@@@@@@@@@##@@@@*:;#@@@@@##@@@##@@@#*;#@@@#++#@@@##@@@#+###@@@#@@@@+*@@@@#.                            
                   ,@@@@@@@@@#+***;;*#@@@@@@@@##+@; ;@@@@@@@@@@@@@@@###@@@+:;+@@@@@##@@##@@@@#**#@@@@+#@@@@##@@@+#@#@@@##@@@#;#@@@@:                            
                  `#@@@@@@@++++**;*#@@@@@@@@@@@@#@* :@@@@@@@@@##@@@@@##@#@@+:;+@@@@@##@@##@@@@#**@@@@@@#@@@##@@@##@#@@@##@@@@**@@@@+`                           
                 `+@@@@@@#**#@#*;*#@@@@@@@@@@@@@@@* ,@@@@@@@@@##@@@@@@####@@+;;+#@@@@##@@##@@@@#*+@@@@@##@@@##@@@#@##@@@#@@@@#;#@@@@,                           
                 ;@@@@@@+*+@@*;*#@@@@@@@@@@@@@@@@@* .+@@@@@@@@@##@@@@@@####@@+;;*#@@@##@@@##@@@@+*#@@@@##@@@@#@@@@@@#@@@##@@@@*+@@@@;                           
                ,@@@@@#*+#@#*;*#@@@@###@@@@@@@@@@@*``+@@@@@@@@@@#@@@#@@@###@@@+;;*#@@@##@@@##@@@@++#@@@@##@@@##@@@#@##@@@#@@@@+*#@@@#                           
               .#@@@@#*+@@#*;*@@@@@##@@@@@@@@@@@@@#.`;@@@@@@@@@@#+@@##@@@@##@@@+;;*@@@@#@@@@##@@@###@@@@@#@@@##@@@#@@#@@@##@@@#;+@@@@.                          
               *@@@@###@@+;;+#@@@@#@@@@@#@@@@@@@@@@,`:#@@@@##@@@@++@@##@@@###@@@*;**@@@@##@@@#@@@###@@@@@##@@@#@@@#@@#@@@##@@@@**@@@@:                          
              :@@@@##@@@#*;+@@@@@###@@@@#@@@@@@@@@@:`,+@@@@##@@@@#*#@@#@@@@###@@#*;*+@@@##@@@@##@@###@@@@@#@@@@#@@@@@##@@@#@@@@+*#@@@*                          
             `#@@@##@@@#*;+@@@@#####@@@@@@@@@@@#@@@;..;@@@@@##@@@@+*@@##@@@@###@@#**;+@@@##@@@##@@@##@@@@@##@@@#@@@@@@#@@@##@@@+*+@@@#`                         
             ;@@@##@@@@*:+#@@@##@@++@@@@#@@@@@##@@@+..:#@@@@@##@@@#*+@@##@@@####@@+;**#@@@##@@@##@@###@@@@##@@@##@@##@##@@##@@@@*+@@@@.                         
            .#@@@@@@@@+;*#@@@##@@@**@@@#@@@@@@@#@@@#,.,*@@@@@@##@@@+;#@@##@@@###@@@+*;*#@@##@@@@#@@@##@@@@@##@@@#@@##@##@@@#@@@@**@@@@:                         
            ;@@@@@@@@+;*@@@@##@#@#;+@@##@@@@@@@#@@@#:,:;#@@@@@@#@@@@**@@##@@@@##@@@@**;*#@@##@@@##@@@##@@@@##@@@#@@@@@@#@@@##@@@+;#@@@*                         
            +@@@@@@@#;;@@@##@@##@@*+@##@@##@@@@##@@@*:;:+@@@@@@##@@@#;#@@##@@@###@@@#***+@@##@@@@##@@##@@@@##@@@@#@@@@@#@@@##@@@#;#@@@+                         
           ,@@@@@@@@*;#@@##@@##@@+*@@+#@@;;@@@@@#@@@*:+:;#@@@@@@##@@@*;@@@#@@@@#@#@@@#**;#@@##@@@@##@@##@@@@#@@@@#@@@@@##@@@#@@@#;*@@@+                         
           :@@@@@@@+;+@@@##@@##@@**@@+#@#,:@@@@@#@@@#:+*,+@@@@@@@#@@@#;+@@@#@@@#@##@@@+**+#@@#@@@@##@@##@@@@##@@@##@@@@@#@@@#@@@#;*@@@#.                        
          `*@@@@@@#;*@@###@@@#@@#;+@#+@@@,,@@@@@#@@@@;*@;:#@@@@@@##@@@+;#@@#@@@@###@@@#**;+@@##@@@@##@@##@@@@#@@@##@@@@@#@@@##@@#**#@@@.                        
          `#@@@@@@*:#@@##@@@##@@+;#@+#@@@;:@@@@@@#@@@+:@#:*@@@@@@@##@@#;*@@@#@@@###@@@@#*;*#@@##@@@##@@##@@@@#@@@@#@@@@@##@@##@@@+;+@@@,                        
          .@@@@@@+:+@@##@@@@#@@#**@#+@@@@+.#@@@@@#@@@#:+@*:#@@@@@@###@@+;#@@#@@@@####@@@+**+@@##@@@@##@@##@@@##@@@##@@@@##@@@#@@@+;+@@@:                        
          :@@@@@@;*@@##@@@@##@@+;+@+#@@@@+`+@@@@@@#@@@*;@#*;#@@@@@@##@@#;*@@@#@@@####@@@#*;*#@@##@@@@#@@@#@@@@#@@@##@@@@@#@@@#@@@+;+@@@:                        
          *@@@@@+:#@@#@@@@##@@#*;####;#@@#,;@@@@@@#@@@#:#@@;*#@@@@@@#@@@+;#@@#@@@@####@@@+**+#@@#@@@@##@@##@@@#@@@@#@@@@##@@@#@@@+**#@@;                        
          +@@@@@:*@@#@@@@@##@@#;+@+@* +@@@;,#@@@@@##@@@;*@@#;*@@@@@@##@@@;*@@@#@@@#@##@@@@+;*#@@#@@@@@#@@##@@@##@@@##@@@@#@@@##@@@*;#@@*                        
          +@@@@+:#@##@@@@@#@@@**#++@: :@@@*.#@@@@@##@@@+;#@@#*+@@@@@@##@@+;#@@##@@@#@##@@@#*;+#@@#@@@@##@@##@@##@@@#@@@@@##@@##@@@**#@@*`                       
         .#@@@@:;@@#@@@@@#@@@+;+@*##.``+@@#,;@@@@@@#@@@#;+@@@#++@@@@@@#@@#**@@@#@@@#@@#@@@@+;*#@@##@@@@#@@##@@@#@@@##@@@@@#@@@#@@@**+@@+`                       
         .@@@@+,+@#@@@@@##@@#**@++@*```,@@@:,@@@@@@##@@@+;#@@@#+#@@@@@##@@+;#@@#@@@##@##@@@#*;+@@@#@@@@##@@#@@@#@@@##@@@@@#@@@#@@@*;+@@#`                       
         ,@@@@;:@@#@@@@##@@@*;##*@#.`..`*@@+.*@@@@@@#@@@@;*@@@@@+#@@@@@#@@#;+@@##@@@#@##@@@@+;*#@@##@@@@#@@##@@##@@##@@@@@##@@##@@#;*#@#.                       
         :@@@@,*@##@@@@##@@+;+@*+@* `..`.@@@:,@@@@@@##@@@+;#@@@@@##@@@@##@@**#@@#@@@#@@#@@@@#*;+@@@#@@@@#@@@#@@##@@@#@@@@@##@@#@@@#**@@@.                       
         ;@@@+.#@#@@@@##@@#;*@#*@@.`...``;@@+.*@@@@@@#@@@@**@@@@@@@@#@@@#@@+;+@@#@@@@#@##@@@@+;*#@@##@@@##@@#@@@#@@@##@@@@##@@@@@@#**@@@.                       
         *@@@:,@@#@@@##@@#*;#@;+@*`..`..``+@#:,#@@@@@@#@@@#;#@@@@@@@##@@##@#**#@@#@@@#@@#@@@@#*;+@@##@@@@#@@##@@#@@@##@@@@@#@@@#@@#**@@@.                       
         *@@@,;@#@@@@@@@#*;#@+*@@.`...`.. .#@+,;@@@@@@##@@@+;@@@@@@@@@@#@#@@+;+@@#@@@##@#@@@@@+;*@@###@@@#@@##@@##@@##@@@@@#@@@#@@#**#@@,                       
        `+@@#,*@##@@@@@@*;+@+;+@;``.`.`...`:@@*,*@@@@@@#@@@#**@@@@@@@@@@@##@#**@@##@@@#@##@@@@#**#@@##@@@@#@@#@@@#@@@@@@@@@#@@@#@@#+*+@@,                       
        `+@@#,+@@#@@@@@+;+@@;*@#.`..`.....``:@#::+@@@@@##@@@+*+@@@@@@@@@@@#@@**#@@#@@@#@@##@@@@+;+@@@#@@@@#@@#@@@#@@@@@@@@@#@@@#@@@+;+@@:                       
        `#@@+:#@@@@@@#*;+#@*;#@,``..``.....``*@+:;+@@@@@##@@@+*#@@@@@@@@@@##@+;+@@#@@@##@##@@@@#;*#@@##@@@##@##@@#@@@@@@@@@#@@@@#@@+;+@@:                       
        `#@@+;#@@@@@#*;+@@+;+@* `..`.``..``.``*@*:;#@@@@@#@@@@**#@@@@@@@@@##@#**@@##@@@#@##@@@@@*;+@@##@@@##@@#@@##@@@@@@@@##@@##@@+;+@@:                       
        .@@@+*@@@@@+;;+@@#;*@#.`......`....`.``*@*,;#@@@@@##@@@+*#@@@@@@@@@#@@+;#@##@@@#@@#@@@@@#;+@@@#@@@@#@@#@@##@@@@@@@@##@@##@@+;+@@;                       
        .@@@#+@@@#+;;#@@#*;@@:``.`.``.`.`....```*@*:;#@@@@###@@@+*+@@@@@@@@##@#;+@@#@@@#@@##@@@@#**@@@##@@@#@@##@@#@@@@@@@@##@@##@@+;+@@;                       
        .@@@@@@#+*;*#@@@*;#@;`.....``.`..``.``.``*@+;;+@@@@##@#@@+*#@@@@@@@##@#**@@#@@@##@##@@@@@+*#@@##@@@##@@#@@##@@@@@@@@#@@@#@@#;+@@;                       
        .@@@@#+*;;#@@@@*;+@+``..`........`.`..`.` :@#;;+#@@@@#@@@@#*+@@@@@@@#@@+*#@##@@@#@@#@@@@@#;+@@##@@@##@@#@@##@@@@@@@@@@@@@@@#*+@@;                       
        .@@##;;;+@@@@@+;*@#.`.`...`..``..........` .+#*;*#@@@@##@@@#++@@@@@@@@@#;+@#@@@@#@@#@@@@@@**@@@#@@@@#@@#@@@#@@@@@@@@#@@@##@@*+@@*                       
        ;+;;+*+@@@@@@+;*@@, `..``..``.`.........`..``:++;;+@@@@##@@@####@@@@@@@#**@@@@@@#@@##@@@@@+*#@@#@@@@#@@@#@@#@@@@@@@@##@@##@@*+@@+                       
   `,;*+*;;+#@@@@@@@+;*@@: ```...`..`..`..........````.*#*;*##@@@###@@@#@@@@@@@@**@@@@@@#@@##@@@@@#*+@@@#@@@##@@#@@#@@@@@@@@##@@##@#*+@@+                       
   ,*+*;;#@@@@@@@@@+;*@@+,,:,.``..`..`.`........`..`.```:++***#@@@@##@@@@@@@@@@@+;#@#@@@##@@#@@@@@@*+@@@#@@@##@@#@@#@@@@@@@@##@@##@#*+@@+                       
        ,@@@@@@@@@+;*@@*,,,:;*;``..`.............``....```:++***#@@@@###@@@@@@@@#*+@#@@@##@@##@@@@@**#@@#@@@@@@@#@@@#@@@@@@@@#@@##@#*+@@+                       
        :@@@@@@@@+;+@@*``````,;*.`..`.`.........`..`.....``.:*++*++#@@@@@@@@@@@@@*+##@@@@#@@##@@@@@+*#@@##@@@#@@@@@##@@@@@@@@@@@##@#*+@@+                       
        :@@@@@@@+;+@@;``.....``;;``.`..`.........``..``.`..```.;**++##@@@@@@@@@@#**##@@@@#@@@#@@@@@#*#@@##@@@#@@@@@@#@@@@@@@@#@@@@@@*+@@+                       
        :@@@#@@*:+@#:``.`````.``*:``.`...........`...``..`..`````.:;;*+########@@+*#@@@@@##@@##@@@@@**@@@#@@@#@@@@@@#@@@@@@@@#@@@@@@*+@@+`                      
        :@@@@#*;#@#, ```.,`,``.`,*``.,``....`.............```..``````*@+++#@@###@@*+@@@@@#@@@##@@@@@+*@@@##@@#@@@@@@##@@@@@@@#@@@#@@++@@+                       
        :@@@#;*#@@@,`..``***; ...,.`.*; `...`.`...................``*#######++++#@+*#@@@@@#@@##@@@@@#+@@@#@@@#@@@@@@##@@@@@@@#@@@#@@++@@#`                      
        ,@#*+#@@@@@:``,:.,@@#. ````.`:#:`..`.`...............`...`.*@#@###+****;*+@+@@@@@@#@@@#@@@@@#*#@@#@@@##@@@@@@#@@@@@@@#@@@#@@++@@#`                      
        :#+*@@@@@@@+.`.;#+#@@*,..``.. ,#,`.`...`.........``..`..``;@####+****+++**#@@@@@@@#@@@#@@@@@@*+@@##@@##@@@@@@#@@@@@@@#@@@#@@++@@#.                      
      `;###@@#@@@@@@,,*+#@#@#@@#+;. .``;+``.`.............``...` :@####+***#@@@@@*+@@@@@@@#@@@#@@@@@@++@@##@@##@@@@@@#@@@@@@@#@@@#@@#+@@#.                      
     :++*@@@@@@@@@@@; ,#@@@#+#@@@##:`.``+; `.``...............``.#@@#+#+**#@@@@@@#+#@@@@@@#@@@#@@@@@@#+@@@#@@@#@@@@@@#@@@@@@@#@@@#@@#+@@#.                      
  `,**: `@@@@@@@@@@@+,;#@+:.+##+###@;```,+.`.`.`..............``;@##:*#**+@@@@@@#@##@@@@@@##@@##@@@@@##@@@#@@@#@@@@@@#@@@@@@@#@@@#@@#+@@@.                      
  .,.   .@@@@@@@@@#@##@#:  :##**+@##@;```;*``.`..........``..``.#@@:`##**+@@#@@@@@#+@@@@@@##@@##@@@@@@##@@@@@@@@@@@@@@@@@@@@@#@@@#@@##@@@.                      
        .@@@##@@@@#@@@*.  `#@**#@@@#@@:``.#,`.``........`..`..`:@@# `##**+@@@@@@@@#+@@@@@@##@@##@@@@@@##@@##@@##@@@@@##@@@@@@@@@@#@@@@@@@,                      
        .@@@##@@@@@#@@.   ,@#*+@@@@@@@+.``;;``.`.........`...``*@@,  +@+**#@@@@@@@+*@@@@@@##@@@#@@@@@@@#@@##@@##@@@@@@#@@@@@@@@@@#@@@@@@@,                      
        .@@@#@@@@@@@@@;   ,@+*#@@@#@@#@;``,+.`.`.........`...``+@*   :@#**+#@@@@@+**@@#@@@##@@@#@@@@@@@#@@##@@##@@@@@@#@@@@@@@@@@#@@@#@@@,                      
        .@@@#@@@@@#@@@@`  ,@#*#@#@@@@#@+```+:`..............``.#@,   `+@#***+##+*;+##@@@@@@#@@@##@@@@@##@@@@@@##@@@@@@#@@@@@@@@@@#@@##@@@:                      
        `#@@#@@@@@#@@@@:  `+@**#@@@#++@@,``;*``.............``.@#`    .#@#+*;;***+#@@@@@@@@#@@@##@@@@@#@@@@@@@@@@@@@@@##@@@@@@@@@#@@@@@@@:                      
        `#@@##@@@@@@@@@:   :@#**+++**+@@*``,+``..........``..`.@*      .+@@##+####@+*@##@@@#@@@##@@@@@@@@@@#@@@#@@@@@@##@@@@@@@@@#@@@@@@@:                      
        `+@@##@@@@@@@@@*   `;@@+*+*+@@+#+``.+,`..........`...`.#*        ,*#@@@#*++,.@#+@@@##@@@@@@@@@@@@@@#@@@#@@@@@@##@@@@@@@@@@@@@@@@@;                      
        `+@@##@@@@@@@@@#.    ,+@@@@@#; ,#.`.*:`............`.``+:          `...,;*, .##*#@@##@@@@@@@@@@@@@@##@@#@@@@@@#@@@@@@@@@@@@@@@@@@;                      
         +@@##@@@#@@@@@*;`     ,:;;,`   ;:``;;`............`.``;*,``  `      .:;;.``.##*@@@##@@##@@@@@@@@@@@@@@##@@@@@@#@@@@@@@@@@@@@@@@@*                      
         *@@##@@@##@@@@::*`             :*.`;;``...........`.``,;;***;;;;;***;:.````.##*#@@##@@##@@@@@@@@@@@@@@#@@@@@@@#@@@@@@@@@@@@@@@@@*                      
         *@@#@@@@@@@@@@, :*,         `,:*:``:;`..........`.``.````.,,,,:::,,.````..``##;#@@##@@@#@@@@@@@@@@@@@@@@@@@@@@#@@@@@@@@@@@@@@@@@+                      
         ;@@@@@@@@@@#@@:``,*;,.,,,,:;;::.```;+``........`..``..`.`````````````.....``##;+@@##@@@#@@@@@@@@@@@@@@@@@@@@@@#@@@@@@@@@@@@@@@@@+`                     
         :@@@#@@@@@@@@@,`.`.,,;;;;:,,.```..`,:............................`....```.``+#*+@@##@@@#@@@@@@@@@@@@@@@#@@@@@@@@@@@@@@@@@@@@@@@@#`                     
         :@@@#@@@@@@@@@,`..`..``````````.``.``.`..........``..`..`..........```....``+@*+@@##@@@#@@@@@@@@@@@@@@##@@@@@@@#@@@@@@@@@@@@@@@@#`                     
         ,@@@#@@@##@@@@:``..`..`....``.....`..`..........``......``.`..`..`...```..``+@;+@@@#@@@#@@@@@@@@@@@@@@##@@@@@@@#@@@@@@@@@@@@@@@@@.                     
         ,@@@#@@@@@@@@@:`....`..`.....````..``...........`..`...`..``...`..........``*@*+@@@@@@@#@@@@@@@@@@@@@@##@@@@@@##@@@@@@@@@@@@@@@@@.                     
         `#@@#@@@#@@@@@:`.```.`..........`.`.`.`.``....`........................`..``*@;+@@@@@@@@@@@@@@@@@@@@@@@#@@@@@@##@@@@#@@@@@@@@#@@@.                     
         `#@@#@@@#@@@@@;```.``............`..`......`..`...........................``*@;+@@@@@@@@@@@@@@@@@@@@@@@#@@@@@@@#@@@@#@@@@@@@@#@@@,                     
          +@@#@@@#@@@@@*``...`.`..```...``..`.``.````..`...........................``*@*+@@@@@@@#@@@@@@@@@@@@@@@#@@@@@@@@@@@@#@@@@@@@@@@@@:                     
          *@@##@@#@@@@@#.`.`..``...`...``,+.`........`.............................``*@*+@@@@@@@#@@@@@@@@@@@@@@@#@@@@@@@@@@@@@@@@@@@@#@@@@;                     
          ;@@##@@@@@@@@@:`....``......``.+;`.`..`.``...`...........................``+@;+@@@@@@@#@@@@@@@@@@@@@@@#@@@@@@@@@@@#@@@@@@@##@@@@*                     
          :@@@#@@@@@@@@@*``.`.`.`.....``:+``...`.``````............................``+#;+@@@@@@@##@@@@@@@@@@@@@@##@@@@@@@@@#*#@@@@@@#+@@@@*                     
          ,@@@#@@@@@@@@@#,`..`..`.....``;;`.`.`.....````........................`..``+#;+@@@@@@@##@@@@@@@@@@@@@@##@@@@@@@@@#;#@@@@@@+*@@@@+`                    
          .@@@#@@@@@@@@@@;``..```..`...`*:``...``.`.:*:`........................`..``+#;+@@@@@@@##@@@@@@@@@@@@@@##@@@@@@@@@#*#@@@@@@+*@@@@#`                    
          `#@@##@@@@@@@@@#.`..`.```.`..`;*``.`.`..`..:+*``.`.`.....```...........`.``##;+@@@@@@@##@@@@@@@@@@@@@@##@@@@@@@@@+*@@@@@@@+*@@@@@,                    
           *@@##@@@@@@@@@@*``...``...`.`,#: `.`.....``.#:`.``......``............`.``##;+@@@@@@@##@@@@@@@@@@@@@@##@@@@@@@@@;*@@@@@@@**@@@@@,                    
           :@@@#@@@@@@@@@@@: `..`....`..`:#: ...`````.`:+``.`...`..`.............`.`.##;+@@@@@@@##@@@@@@@@@@@@@@##@@@@@@@@@;*@@@@@@@;*@@@@@:                    
           ,@@@@@@@@@@@@@@@#,``...``.....`:+*.`.....,.`,+.`.````................`..`.#+;#@@#@@@@##@@@@@@@@@@@@@@##@@@@@@@@@;;@@@@@@@;*@@@@@;                    
           `#@@@@@@@@@@@@@@@#,``...``.``.``,*,``,***;``.:.`..`.......``............`,#+*#@@##@@@##@@@@@@@@@@@@@@##@@@@@@@@@;;@@@@@@@;*@@@@@*                    
            *@@@@@@@@@@@@@@@@*. ``.....`.`.``..``,,,.`.``.``.``......`............``,@+*@@@##@@@##@@@@@@@@@@@@@@##@@@@@@@@@:*@@@@@@@;;@@@@@+`                   
            :@@@@@@@@@@@@@@@#@;.``........`.``.`.````..``...````...``.............``:@+*@@@##@@@##@@@@@@@@@@@@@@##@@@@@@@@@:*@@@@@@@;;@@@@@@.                   
            .@@@@@@@@@@@@@@@@@@*.``......``...`....`..`..`..`...`..``...........`..`;@**@@@##@@@##@@@@@@@@@#@@@@##@@@@@@@@#:*@@@@@@@*;@@@@@@.                   
             ;@@@@@@@@@@@@@@@@@@*,``...........`.....`````.```.`````:;.`.........`.`;@**#@@##@@@##@@@@@@@@@##@@@##@@@@@@@@#,*@@@@@@@*:@@@@@@;                   
             .#@@@@@@@@@@@@@@@@@##, `....``....``````..`.......```.**.`.........`.``*@**@@@##@@@##@@@@@@@@#*#@@@##@@@@@@@@#,*@@@@@@@*:@@@@@@*                   
              *@@@@@@@@@@@@@@@@@@@#, `..,:,`````..,,:::::;;::::::;#+.`.`........`.``*@*+@@@##@@@##@@@@@@@@+;#@@@#@@@@@@@@@+,*@@@@@@@*:@@@@@@+`                  
              .@@@@@@@@@@@@@@@@@@@@#;``..,;*:..,:::;;::::::::;;*##*.`.............`.+@++@@@##@@@##@@@@@@@@+:#@@@@@@@@@@@@@+,*@@@@@@@*,#@@@@@#.                  
               *@@##@@@@@@@@@@@@@@@@@*.```.;+#+***;;::::;;;**++++;``..`...........`,@@+#@@@##@@@##@@@@@@@@+:#@@@@@@@@@@@@@+,*@@@@@@@#:+@@@@@@,                  
               ,@@@@@@@@@@@@@@@@@@@@@@+.`.``,*+#++++++++++###++*:.`.``.`..........`.@@+#@@@#@@@@##@@@@@@@@*,#@@@@@@@@@@@@@#,*@@@@@@@@:+@@@@@@;                  
               `#@@#@@@@@@@@@@@@@@@@@@@#,``.``.;*++######+++**;:.`.``.`...........`:@@++@@@@@@@@##@@@@@@@@;,@@@@@@@@@@@@@@#,;@@@@@@@@;*@@@@@@+`                 
                *@@#@@@@@@@@@@@@@@@@@@@@@,``.``.::;;;***;;;::;:.`................``#@#*#@@@@@@@@##@@@@@@@@:,@@@@@@@@@@@@@@@,;@@@@@@@@:*@@@@@@#.                 
                ,@@#@@@@@@@@@@@@@@@@@@@@@@;``..`.:;::::::::;;:.`...```.....`..`.``*+@#+@@@@@@@@@##@@@@@@@@,,@@@@@@@@@@@@@@@,*@@@@@@@@*:#@@@@@@:                 
                `#@@@@@@@@@@@@@@@@@@@@@@@@@*. ..`.,:;;;;;;;:,.`......````.`.``.`.*:*@##@@@@@@@@@##@@@@@@@@,.@@@@@@@@@@@@@@@,;@@@@@@@@#:#@@@@@@;                 
                 +@@@@@@@@@@@@@@@@@@@@@@@@@@+, ````..,,,,,..```.......``.`.`..``*:`+@#+@@@@@@@@@#@@@@@@@@@,.#@@@@@@@@@@@@@@::@@@@@@@@#:+@@@@@@+`                
                 ;@@@@@@@@@@@@@@@@@@@@@@@@#@@#:``..````.`````...........`.`.``,*; .@@##@@@@@@@@@@@@@@@@@@@:`+@@@@@@@@@@@@@@:,#@@@@@@@#;;@@@@@@@,                
                 :@@@@@@@@@@@@@@@@@@@@@@@@@@#@@;```....``..........`.....`.``:*:``,@@#@@@@@@@@@@@@@@@@@@@@: +@@@@@@@@@@@@@@:.@@@@@@@@@*;@@@@@@@;                
                 .#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+, `..`...```.``..`.....````;+, ``:@@+#@@@@@@@@@@@@@@@@@@@; *@@@@@@@@@@@@@@;.@@@@@@@@@+:#@@@@@@#`               
                 `#@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@;` ..``...``..`.....``.`.*;.`.. *@@##@@@@@@@@@@@@@@@@@@@* *@@@@@@@@@@@@@@*.+@@@@@@@@#:+@@@@@@@,               
                  +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+,``....`...``....``` ;#: `.``.*@@@@@@@@@@@@@@@@@@@@@@@+`;@@@@@@@@@@@@@@#,*@@@@@@@@@**@@@@@@@;               
                  *@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*,`````.....``````,+@#``...`.#@@@@@@@@@@@@@@@@@@@@@@@+`,@@@@@@@@@@@@@@@,;@@@@@@@@@*;@@@@@@@#`              
                  :@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@#*,.``````````.,*@@@*``.```,@@##@@@@@@@@@@@@@@@@@@@@+`,#@@@@@@@@@@@@@@,:@@@@@@@@@+;#@@@@@@@:              
                  ,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#*:,..,,:;*#@@@@@*``...`,@@+#@@@@@@@@@@@@@@@@@@@@#,.#@@@@@@@@@@@@@@;,#@@@@@@@@#:*@@@@@@@+              
                  .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@;```..`:@@@@@@@@@@@@@@@@@@@@@@@@@;`+@@@@@@@@@@@@@@+.+@@@@@@@@@;;@@@@@@@@,             
                  .@@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@@,`.````;@@@@@@@@@@@@@@@@@@@@@@@@@*`*@@@@@@@@@@@@@@#,;@@@@@@@@@+:#@@@#@@@*             
                  `#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@@#.`...``*@###@@@@@@@@@@@@@@@@@@@@@+.:@@@@@@@@@@@@@@#:,@@@@@@@@@#:+@@#;+@@#.            
                  `+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*```..``+@@#@@@@@@@@@@@@@@@@@@@@@@@,,#@@@@@@@@@@@@@@*,+@@@@@@@@@*;#@@;,#@@;            
                  `+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@, .`..``+@@@@@@@@@@@@@@@@@@@@@@@@@@;.+@@@@@@@@@@@@@@#,;@@@@@@@@@#:+#@@`,@@@.           
                   *@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@;``.`..``#@@@@@@@@@@@@@@@@@@@@@@@@@@#.;@@@@@@@@@@@@@@@;,#@@@@@@@@@;*#@@+ ;@@*           
                   *@@@@@@@@@@@@@@#@@@@#@@#@@@#@@@@@@@@@@@@@@@@@@@@@#@@+.`..``.``+@@@@@@@@@@@@@@@@@@@@@@@@@@@:,@@@@@@@@@@@@@@@+,*@@@@@@@@@#;+@@@. ;@@,          
                   ;@@@@@@@@@@@@@@@@@#@#@@@@@@@#@@@@@@@@@@@@@@@@@@@@@@*.``.....`.#@@@@#@@@@@@@@@@@@@@@@@@@@@@+.+@@@@@@@@@@@@@@#::#@@@@@@@@@+*@@@+  *@+          
                   ;@@@@@@@@@@@@@@@@@@@#**@+:,,......,,,:::;;**+#@@#+:. ...`...`.#@@@@#@@@@@@@@@@@@@@@@@@@@@@@,;@@@@@@@@@@@@@@@+,*@@@@@@@@@@*+@@@, `*@:         
                   ;@@@@@@@@@@@@@@@@#;::..**  ``````````````````.,,,.``...``.`.`.+@@@##@@@@@@@#@@@@@@@@@@@@@@@+,+@@@@@@@@@@@@@@@;:#@@@@@@@@@#;#@@+  `+@.        
                   ;@@@@@@@@@@@@@@*:,,,,,,,+;``.......``....``````````..``...`.`.#@@@##@@@@@@###@@@@@@@@@@@@@@@:;@@@@@@@@@@@@@@@#:;#@@@@@@@@@+*@@@.  `#+`       
                   ;@@@#@@@@@@@@#;.,::,:::,,#;````````..........``..``.....`...`.#@@@##@@@@@@##@@@@@@@@@@@@@@@@+:+@@@@@@@@@@@@@@@*:*@@@@@@@@@@*+@@*   .@;`      
                   ;@@@@@@@@@@@@;,,:,,,,,::,:#*```...`.................```.`.````+@@@##@@@@@@@#@@@@@@@@@@@@@@@@@;;@@@@@@@@@@@@@@@@*:+@@@@@@@@@#*#@@.   .#,      
                   ;@@@@@@@@@@@*.:::,:,:,:,:,:#+.``.`..`..``...............`..``.+@@++@@@@@@@#+@@@@@@@@@@@@@@@@@#;*@@@@@@@@@@@@@@@@*:+@@@@@@@@@+*@@*    ,,`     
                   ;@@@@@@@@@+#@;.:,,:,,,,:,:,,+#:``..`..``................`..```+@@#+@@@@@@@+:#@@@@@@@@@@@@@@@@@+:#@@@@@@@@@@@@@@@@+;*@@@@@@@@@++@#.    `      
                   ;@@@@@@@@@,,##,,,,,:,:,:,,:,:*@*` ..``....```...........`...``*@@#*@@@@@@@#,+@@@@@@@@@@@@@@@@@@+;#@@@@@@@@@@@@@@@@+**#@@@@@@@#*#@;           
                   ;@@@@#@@@+` ,#+,,:,:,,:,,,,:,.;##:  `...``..`...............``;@@+*@@@@@@@@,;@@@@@@@@@@@@@@@@@@@+;#@@@@@@@@@@@@@@@@#+*#@@@@@@@#*@#`          
                   ;@@@@#@@@;```,@;,:,,,,::,,,,::,,+@*,```...``...............```:@@*;@@@@@@@@:.@@@@@@@@@@@@@@@@@@@@*;#@@@@@@@@@@@@@@@@@+*+#@@@@@@++@:          
                   ;@@@@@@@@,`.` *#,,:,::,::,:,.,:,,:##*.```..................`.`,@@*:@@@@@@@@* +@@@@@@@@@@@@@@@@@@@@*;+#@@@@@@@@@@@@@@@@+**#@@@@@#*@+          
                   ;@@@@@@@#.`..`,#;,:,:,:,,:,,,,,,,,,;##*,```..................`.#@+:@@@@@@@@#.,#@@@@@@@@@@@@@@@@@@@@**+#@##@@@@@@@@@@@@@#**#@@@@@+#@,         
                   ;@@@@@@@*``... ;+,::,,,:,,:,:,,,,::,,;+#*,```.........``.....``+@+:#@@@@@@@@; *@@@@@@@@@@@@@@@@@@@@@@+@@#++++#@@@@@@@@@@@+*#@@@@@+@*         
                   *@@@@@@@;`....`.#:,:::::,,,,::,,,,,::,,:*++:.``````...........`;@#,+@@@@@@@@@:`+@#@@@@@@@@@@@@@@@@@@@@@@@@#++*++##@@@@@@@@+;+@@@@###.        
                   *@@@@@@@:``...``+*,:,:::,,,,:::,,,,,,:,,,,:*+*;,.````````````.`,@#,+@@@@@@@@@@,.+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#+++++#@@@@@@+;+@@@@#@:        
                   *@@@@#@@:``....`;+,,:::,,,,,::::,,,,,,,,,,,,:;;***;,...``````` `+@;*@;+@@@@@@@#:.*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#++*+#@@@@@+*+@@@@@+`       
                  `+@@@@#@@,`...`.`,+,,::,,:,,,:,,,::,,,,,,,::::,,,,:;;;**;;::::::,+@+:#;+@@#@@@@@@*,:+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#+*+#@@@@+;+@@@@@,       
                  `+@@@@@@#,`..``.`.+:,::,,:,,,:,,,,::,,,,,,,,,:::,,,,,,:::;;***++++@#;##*#@@@@@@@@@#;:;++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#++##@@@#*+@@@@*       
                  `#@@@@@@#,`..`..``*;,::,,:,,,:,,:,,,,:,,,,,,,,,,,:::::,,,,,,,,,,:,+@*++,,+@@@@@@@@@@#*;;***+##@@@@@@@@@@@@@@@@@@@@@@@@@@@#++#@@@+*#@@@#.      
                  `#@@@@@@@,`......`;;,::,,::,,:,::,,,,::::,,,,.,,,,,,,,::,,,,,,::,.;@+*#:.:*@@@@@@@@@@@@#+*;****************+###@@@@@@@@@@@##@@@@@+*#@@@:      
                  `#@@@@@@@,``..`..`:*,::,,::,,:::,::,,,,:::,,,,,,,,,,,,,,,,,,,,:::,,+@*#;,,,:+@@@@@@@@@@@@@@@###+++++++++****;;;**+##@@@@@@@@#@@@@@++@@@+      
                  .#@@@@@@@:`.`.`..`:+,,:,,::,,:::::,:,,,,,,::::,,,,,,,,,..,,,,,,,,,,:@#+*.,,..:+#@@@@@@@@@@@@@@@@@@@@@@@@@@@@##++*;;*+#@@@@@@@##@@@#+#@@#`     
                  .#@@@@@@@:```.`..`:#,,:,,::,,:,,,,::::,,,,,:::::,,:,,,,,,,,,,,,,,,,,*@++,.,,.,`,;+#@@@@@@@@@@@@@@#++****++++#@@@@@#+*;;+#@@@@@##@@@@@@@@:     
                  .@@@@@#@@;``.``.. :#:,:,,::,,:,,,,,::::,,,,,,,::::::::::,,,,,,,,,,,.:#@#*.,:,,,,,,::;*++######+*;:,,,,,,,,,,::;*+#@@@@#**+#@@@@@@@@@#@@@*     
                  .@@@@@@@@+.`.`...`,+:,:,,::,,:,,,,,:::,,:,,,,,,,,,,:,,,,,::;;::,,::,,;@@#,,,:,:::::,,,,,,,,,,,,,,,,:::::::::,,,,,,:;+#@@#+*#@@@@@@@@++@@+`    
                  .@@@@@@@@#,`.``..`,+,,:,,::,,::,,,,:::,::::,,;;::,,,,;;;;***;;::,,::,,*@@;,:,,,:::::::,,,,,,,,:,:::::::::::::::,,,,,,,;+#@#+#@@@@@@@;.#@#,    
                  .@@@@@@@@@:``.`..`;+,::,,:,,,:::,,,::,,,,::,,*;;**;:,*++*****;:;:,,,:,,*@@:,::,::::::,::,,,,,,:,,,,:::,:,,,,,::,:::,,,,.:#@@@@@@@@@@+ :@@:    
                  .@@@@@@@@@+.`.`.``;+.::,,:,,,::,,,:::,,,,:,,:;::;*+*;***********;,,,,,,,+@+.:,,,,,,,,,:::::::,,,,,,,,,,,,,:,,,:,,,::::,,+@;,*@@@@@@@@.`+@*    
                  .@@@@@@@#@@,``...`:*.::,,:,,,,,,,,:::,,,::,:*:;;;*****;;******;;*;**:,,..*@;.,,,,,,,,,:::::::,,::,,,:::::,::,,::,,,::,,*@*` `:@@@@@@@: ;@#`   
                  .@@@@@@@@@@;```.`.:;,,:,,,,,,::::::,:,,::,,;;;;******;;*;**;*;;;;****:.,,.*#*.,,,:::::,,,,,,,,:::,::::::::,,,,,,,::::.;@+``.` :@@@@@@; `@@.   
                  .@@@@@@@@@@+```..`;:,,:,,:,,,::::::::,:::,:*;**;;;**;;;*****;**;;****;,,:,.*+:,,,:::::,,,,,,,,::,,,,,::::::,,,:,,,::,:@#.`.`.`.+@@@@@+  +@,   
                  .@@@@@@@@@@#.``.``;:.,:,,:,,,,:::,,::,:,:,;****:;;**;*;;*+**:;+;;***;*;,:,,,,:,,,::,,,,,,,,,,,::,,,,,,:::::,,,:,,::,,+@:`....` :@@@@@#` :@:   
                  .@@@@@@@@@@@,`..`.*,.,,,::,,,,::,,,::,,,:,**;;::;**;;;*;;*;:*+*;;*****;,,:::,,::::,,,,,,,,,,,,::,,,,,,::::,,,,,:::,.*@*``.`...`.#@@@@@, .@*   
                  .@@@@@@@@@@@;``.`,+,.,,,::,,,,::,,,::,,,,:**;;:;**;*;:**;;*;;;;******;;,::,::,:::,,,,,,,,,,,,,::,,,,,,:::,,,,,,:::,;@+```...````*@@@@@; `#+   
                  .@@@@@@@@@@@*``.`,*,,,,,::,,,:::,,,::,,:,:*;*;:;*****;,;***;;;++***;**:,,::,,:::,,,,,,,,,,,,,,::,,,,,:::,,,,,,,::,:#@, .....``.`:@@@@@*  ++   
                  .#@@@@@@@@@@+``.`:;.,,,,::,,,:::,,::,,,:,:*;**;;***;*+;::;;**+#+*;;***:,,:,::,::,,,,,,,,,,,,,,::,,,,::::,,,,,,::,,+@; .`..`....`,#@@@@+  :;   
                  .#@@@@+@@@@@+.`.`;*.,,,,::,,:::,,,::,,,:,:*;;+******++++*;;;;;***;;**;:,::,:,:::,,,,,:,,,,,,,,:::,,:::::,,,,,,:,,;@+``..``....```+@@@@#` .,   
                  `#@@@;:@@@@@+.```*;.,,,,,:,,:,,,,,:::,,:,:*;;********#++++**;;;;;;****,,,,::::,,,,,,,,,,,,,,,,::::::::::,,,,:::,:@@.``...``....``;@@@@@,  `   
                  `#@@+.+@@@@@*.``.*:,,,,,,:,::,,,,,:::,,:,:;*;*******++****;;;;;;*****;:,,:::::,,,,,,,,,,,,,,,,::::::::,:,:,,::,,+@;``...`......``:@@@@@,      
                  `#@@,.@@@@@@+.``:+,,,,,,,,,::,,,:::::,,:,,;**+;:;*******;**********;,,::::::,:,,,,,,,,,,,,,,,,::::,,,,,,::,:::,;@+``............`,#@@@@:      
                  `#@+ ;@@@@@@+```;*,,,,,,,,::,,,::::::,,,:,:;*+**::;;*+**********;;;,,,,:::,,,,,,,,,,,,,,,,,,,,,,::,,,,:,::,::,,#@, ..`.......`..`.#@@@@;      
                  `+@, #@@@@@@;```*;.,,,,,,,,:,,:::::::::::,,,:;**;;;;;;;***;;;:;;;;:::,,,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,:,::,,*@*``..........`..``+@@@@+      
                   ##`,@@@@@@#,``.+,,,,,,,,,,:,,:::,,:::,,,:,,,,.,*++*;;;;;;***;;**;:;:,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,,,,,:,:,,:@#.`.`.........`..``;@@@@#`     
                  `#; *@@@@@#;```:+,,,,,,,,,,:,,,::,,:::::,:::,,,;++*++*;;:;*++****;::::,,,,,::,,,,,,,,,,,,,,,,,,,,:,,,,,::,:,,+@:``.`.`..........``:@@@@#`     
                  `*. #@@@@@*.```*;.,,,,,,,,,::,,,:,,:::,:,:,,,,,*+****++***++*****:,,,,:,:,:::,,,,,,,,,,,,,,,,,,,:::,,,:::,:,:@+``.`..............`,@@@@#.     
                   ` .#@@@@*.`.``+:.,,,,,,,,,,:::::,,,,:::,,::,::,:*****+++*****+;:,,,,,::::::::,,,,,::::,,,,,,,::::,,,:,:,:,,+@,``.`..`........`.``.#@@@@.     
                   ` ,@@@@#,`..`,+,,,,,,,,,,,,::,,::,,,,,,,,::,,,,,,;******;*+*;,,,,:::,,::,,,,:,,,,,,,::,,,,,,,::,:,,,::,,,,;@+``..`...........`..`.+@@@@,     
                     :@@@@*``.``:*.,,,,,,,,,,,,:,,,:,::,,,,,:,,,,,:,,;**;;****;,,,,::::,,,,,,,,,,,,,,,,,,::,,,,,::,::::,,,,,,+@,``.``..`........`..``*@@@@:     
                     ;@@@#:`..`.*:.,,,,,,,,,,,,,,::::,:,,,:::,::,,::,,;+*;**;,,,::::,,,,::::,,:::::,,,,,::::,,,,::::::,,,,,.;@*``....`..........`..``;@@@@;     
                     *@@@#.`..`,+,.,,,,,,,,,,,,,::,,::,:,,,,,:::,::::,,;**;:,,,::::,,,,,:::,::::::,,,,,,,:::,,,,:::::,,,,,,.+@.`..`..`.............``;@@@@*     
                     +@@@+.`.``**.,,,,,,,,,,,,,,,:,,,,,:*;;::,,,,,,,,:,,;+:,,:::,::::::,:,,,,,::::,,,,,,,,:::::::::,,,,,,,.,#+ .....``.`...........``:@@@@*     
                     +@@@;``.`,#:.,,,,,,,,,,,,,,,:**;::;#++++*;:,,,,,,,,;+:,::,:,,,,,::,,,,,,,,,,,,,,,,,,,,:::::::,,,,,,,,.;#, .....``.`...........``,#@@@*     
                     +@@@:``.`;+,,,,,,,,,,,,,,,,,,+#++**+;,:;**+**++;:,,*+:,:,,,,:::::::::::::,,,,,,,,,,,,,::::::,,,,,,,,,,++ `...``..`.........`..``.#@@@*     
                     +@@@:`.`.#*,,,,,,,,,,,,,,,,,,:*++*::::,,::;*++*++;,*+:,,,,::::,:,,:::::,:::,,::::::::::,:::,,,,,,,,,.:@,`...................`..`.#@@@+     
                     *@@@,`.`.#:,,,,,,,,,,,,,,,,,,,;+*++:,,:;;;*;**;*++**+:,:::,::,,,,,,,,,,,,,,::,,,,,,,,:::,,,,,,,,,,,,,++``.`.................`..``+@@@+     
                     *@@#.`.`,+,,,,,,,,,,,,,,,,,,,,:**;++*::;++*******+*++:,:,:,:,,:::::;;;;;;;::::::,,:,,:::,,,,,,,,,,,.:@:`..`................``..``*@@@+     
                     ;@@+.```,+,,,,,,,,,,,,,,,,,,,,,;+;;*++;;*;***+*****++:,,,,,,,;++*****+*+#+:,,::::,::::,,,,,,,,,,,,,.+#``.``................`...``;@@@+     
                     ,@@+.```,+,,,,,,,,,,,,,,,,,,,,:,:+*;*++++*****;****##*;*;:::*++*****+**+*:,::::::,,:,,,,,,,,,,,,,,.,@; .``.................`...``:@@@+     
                     .#@+.`.`,#,,,,,,,,,,,,,,,,,,,,,,,;+*;****++****+*+*,..:*:.,,:;:;***+*;;*:.,,,,,::::,,,,,,,,,,,,,,,.*#.`.`.`................`....`:@@@+     
                      *@+``.`.+:,,,,,,,,,,,,,,,,,,,,,,,;+*;*+***++++;,;;.`.,:.``````..,,,,,;;:::,,,,,,::,,,,,,,,,,,,,,,,#* `.`.`................`..`.`,@@@*     
                      ;@+``.`.*:,,,,,,,,,,,,,,,,,,,.,::,;+*:;*****+;` :*::;,``.`....`````````,::;;;::,,,,,,,,,,,,,.,,,,;#,`.```..................`.`.`,@@@*     
                      `@#``.``;:,,,,,:,::::,,,,,,,,,,,,,,*#*:;;;;+:```.;,.````.....``......`````.,::;:,.,,,,,,,,,,,,,,.++``..........................`,@@@*     
                       *#``..`:*,,,,,:::::,,,,,,,,,,,,,:,,:*++*;*:``..`,*:.`````````...........````.,:;;:,..,,,,,,,,,.:#;``....`.....................`,@@@*     
                       .+.`..`,*,,,,,:::,,,:::::,,,,,,,,::,,:;*#:.:*;;;:***:,,,,..``````...........```..:;;:..,,,,,,,.*#.`.....`...................`.`.#@@;     
                       `*.`..`.*;.,,::,::::::::,:,,,,,,,,:::,,:+::::.,;.`..,,,::::::,..`````.....```.`````,;;:,..,:,.,#*``.```.`...................`.`.#@@,     
                       `*.`..``**.,,,:,:::::::,,::,:::,,,,::,,:::,```.:`````````..,,:::::,.```..`.....``````,;;:,..,.;#,`..`.`.......................`.#@@.     
                       `*.``..`:+,.,,:,:,,,,,:,,,:::::,,,,,,,;;,;````::``...`````````...,::::,.```````...`````.:;:,..+#``....`.......................`.#@#`     
                       `:.```.`.*:.,,,,,,,,,,::,,::,,,,,,,,:*:.`*;:.:;``.``...`.....``````.,,::;,.```...`...````.:*:,#* `....`....................`.``,#@*      
                       `:,`..```*;.,,,:,::,,,:,,:,,,::;;;:;;,```,*,,,```...``.............````..:::,.```.......```.;*#. .....`....................`.``:@@;      
                        :,`.`..`,+.,,:,:,,,,,,,:,,,;;:,,...``..``,;, `````````..`..`.........````.,:;:,```.......```,;:```.```.`..................`.``:#@.      
                        :,`....``+:.,,:,:,,:::::,:;,``````````..``,;;;:,,,..`.````........```..`````.,:;:.```.```..```,;.`.```.....................```:**`      
                        :,`..`.` ;+.,,:,:,,:::::,;:```.........`.``..,::;;;:::,.````.``.`````......```..,::.```......``:,``.``...................`.``.::.       
                        ::`..`..`,+,.,,::,::,::,:;``.......`...``.```````...,,:**;,..```````..````....```.,::,``.....``.:.`.```.....................`.;.        
                        ,:``....``**.,,:::::,::,::.`..`.````````:::;:,..````` .::;*;;:,,.`````....```....``.:,.`...``...;.`...`.....................`.;`        
                        :;``...`.`,+,.,,::,,:,,,,:.``.```,,,,,,::,:::**;::,,.`.: `:;:,::;::,.``.....`````..``..`.`......:.`...`.....................`.*`        
                        :*``.....``*;.,,,:::,,,::;``...``.,,,,:*``` `;,`.:::::;*;:;;:....,:;:,.`.........``..``..`..``..,,`..``..................`..`,*`        
                        .;``..`... :+,,,,,,,,,:;:.`.`.....``` .;.``.,;``````.,,,,:;;;;;:;:,.,::,``.....```.```..`..``.``,:``.`...................`.``,:         
                        `:.`..`.`.``*;.,,,::,:;,```...`.`..`.``;;,,;;.`...```````````..,,:::,,:;:.```.................``,:``....................`..``:,         
                        `:.`..`....`:+,,,,:,:;,`.`....``...`.``.*:.````..``.``.`..````````.,::::;*:.`.``..............``,:``.......................``;,         
                         ;,`..`..`.``+;.,,:,;;``...`..````....``,::,.````..`..`........``````..,,:,``.`...............``.:.`.....................`.`.*.         
                         ;:`..```.```:+..,,,;,`....`.....`..`...`.,:;;,.```.............`...````````..`...............``.:.`.....................`.`.;          
                         ;:`...`..`.``+;.,,,;,`.`..``````........````,:;:,````````....``...`...`.`..``.`...............``:.`.......................`::          
                         ,:`..`.```.``,+,,,,;:`...`.`````.```..``..````.;*:....``````...`..``````...``..........`......``:,`....................`.``;:          
                         .;.`...``...``+;.,,::`....,,,::,,..``.....````` ,;*:,::,..`````...`...`..`...`.........`......``:,`....................`.``;,          
                         .;.`..`...`.``;;,,.::`..``,,,,,:::;,``...`......``:;..:::::,.````.......``....`........`......``:,``.....................`.;`          
                         .*.``..`.`..``,*,,,:,`.`..````````.::.`..``.....```,;```..,::::,.````..``......................`,,```..................`.`,;           
                          ;,`````.....`,+,,,;.`..........````::,``..``..`..``::`.````.,,:::,,..``....`..................`,:```..................`.`::           
                          :,```.`.....`.*:.:;``..``....`.`..``,;:``..`.....``.;.`....````.,,:::,.````..`................`,:```...................``;,           
                          :;``..`.....``;*.::`.```........``.``.::.``..```.```:,`````....````.,:;::.```.................`,:.``...................`.*.           
                          ,;``..``.`...`:+,:,`..`..``...`.....```::,``.....```:,``..........`````.:;:,.`................`.:.``...................`,;            
                          .;.`.`.```...`.*;:`.`..```````.``.``..``,;:``.`...`.*:.```........``..```..,.`................`.:.``...................`::            
                           ;.`...```.`.``*+,`.`.``.,,,:,,.``...`.``.::``..`.`,*;;:,````.`.....``..````..................`.;.``..................``;,            
                           ;:`.......`.``;*``..`.`,;:,:::;;,```.... .**.`````;,,,:;:,.```..`....`....```................`.;.``..................`.*`            
                           ::``..`...```.;,`..`....```````:;;:``.````;;;;.``,*:,,,:++;:,.``...`..``...`.....``..........`.;.`.`............`..`.`,;             
                           ,:`...````.,:,,``.``.........``,,,;;:..``,;..,;;;;,.:;;**;****:,```..`....``.....``..........`.:,``...............````;,             
                           .*`````.,:::,.``....`.........`,:`.,::::;;,`...++:,,*+**;;****;;:.``...``........``..........``,:``...........`...`.`.*.             
                           `;.``.:;:,.```....`...........`,:`.``..,,.`...`*#:,**;;;**+**:::;*;.```....``....``...........`,:`.`..............`.`,;              
                            :,.:;:.````...`..``.........``::`...`..`......*+,;+:;*+*++***:,:++;:.``.........`............`.;.``.............`..`;,              
                            ,;,:.````....``....`.........`::`...........`,++:**:***++****,:+*.,;;,```..`..................`:,``....```........`.*`              
                            .:.```...```....`...........`.;,`.....`......;;+*;;;********:;+*,.,,:;,``.`...................`,:.`....```...`....`,;               
                             .`.....```.`.....`.........`,;``.....`...`,*,:#**;**+*;***;*+;.,:,,.;:``.`..`..............`.`.;,`..........`.`.``;,               
                             ..`.........................;.`........`.:*:.:#+;*+*****;**+,.,,,,,.;,``....................`.`,;``....``.....`.`.*`               
                             ..`........................::`.....``.,:;;:,.:+**+*******++;,,,,,,,,;,```.....................``::``..`..``.`..``:;                
                             ,,`................`...........``...:;;;:,,:.:++*+*++++++*;,,,,,,,,,;.`.`.`................`...`.;,`..........```;,                
                             :,`.........................```,,::;:,,,,,:,,,++++;;;*;;:,.,,,,,,,,,:,`.`..................`.``.`,;.``.`````.```.*`                
                             :,`........................``,:;::,,,.,,,,,,,,++:,...........,.,,.,,:,``.`....................`.``::.```````````::                 
                             ,,`........................:*+#++++++++++++++**;::;;;::::;;;:::::::,;:.`.`..................`..`..`:;**;;;*;;*;**`                 
Es solo un ejemplo, con el convertidor se pueden crear dibujos más simples y sencillos, que al mismo tiempo posean más nitidez, usando imágenes vectoriales.
Para eso se pueden convertir las imágenes originales JPG a vectoriales en formato SVG o PNG.


Como crear un convertidor de imágenes a dibujos ASCII


El generador que hemos utilizado es una sencilla herramienta que se puede crear con el Bloc de notas. Es un archivo en PHP que emplea la librería GD.
De forma similar han sido creado sorprendentes dibujos que muchas veces hemos visto en la web y nos han sorprendido.
No es nada difícil, cualquier persona con un mínimo de conocimientos puede hacerlo.
Dicho generador se puede usar en la computadora offline o publicarlo en un sitio web, para que otras personas lo utilicen.


Requisitos para crear el generador ASCII


Para poder convertir las imágenes en ASCII en el equipo local, son necesarios los siguientes requisitos:
✔ Tener instalado en la computadora el servidor Apache con PHP
✔ Tener instalado en PHP la librería GD de procesamiento de imágenes.


Código para el convertidor de imágenes a ASCII


Compartimos el código de un generador que convierte las imágenes en dos formatos diferentes.
Uno de ellos similar al que mostramos más arriba en esta misma página y otro más complejo donde los dibujos poseen colores, aunque de mayor tamaño. Por esa razón no publicamos un ejemplo del dibujo.
El generador incluye un UPLOADER, para subir cualquier imagen, siempre que esté en los formatos JPG, JPEG, GIF y PNG, otros formatos son rechazados.
El tamaño máximo admitido de los archivos es de 30 KB, imágenes mayores deben ser reducidas antes de subirlas.
Los tamaños ideales de las imágenes están entre los 100 y 400 pixeles.
Las imágenes PNG que han sido comprimidas pueden causar conflictos al subirlas.

Los que deseen publicar en una página las imágenes creadas, pueden guardar la página con el dibujo generado, y copiar la sección del código fuente HTML correspondiente.
Para crear el generador solo es necesario copiar y pegar el código anterior en el Blog de notas u otro programa de edición de texto plano y guardar el archivo con cualquier nombre, pero con la extensión PHP.
A continuación moverlo a la raíz del servidor y ejecutarlo con el navegador web.
Mediante CSS se le puede dar un estilo más atractivo.
Otra opción mucho más sencilla es descargar un archivo PHP con todo el código anterior, listo para utilizar.
Descargar archivoDescargar convertidor


Páginas relacionadas



Sobre el autor:

Norfi Carrodeguas es el fundador y webmaster del sitio web Norfipc, creado en el año 2010. Norfi es un ingeniero informático y desarrollador web cubano. Con más de 14 años de experiencia en la publicación en internet, comparte su tiempo con su consultoría SEO. Más información sobre el autor.

Comparta esta página
Facebook
Twitter

Sígueme en las redes sociales


Norfipc en Facebook Norfipc en Twitter Canales RSS con las últimas publicaciones

 
Inicio | Mapa del sitio | Buscar | Sobre mí