Utilia

Imagem para arte ASCII

Transforma uma foto ou imagem em arte ASCII no teu navegador. Vários conjuntos de caracteres, inversão, saída HTML a cores, copiar ou transferir .txt.

Como transformar uma imagem em arte ASCII

  1. Larga uma imagem JPG, PNG, WebP ou GIF na zona de largar, ou clica nela para escolher uma. A conversão é feita de imediato com as definições predefinidas.
  2. Move o cursor Largura (caracteres): mais caracteres dão mais pormenor, menos caracteres dão um aspeto mais marcado e abstrato.
  3. Escolhe um Conjunto de caracteres: Padrão, Detalhado (70 caracteres), Blocos, Simples, Pontos, Dois caracteres ou Personalizado. Com Personalizado, escreve os teus próprios caracteres, do mais claro ao mais escuro.
  4. Marca Inverter (texto claro sobre fundo escuro) se a arte for mostrada num ecrã escuro, como um terminal.
  5. Marca Cor (saída HTML) para pintar cada caráter com a cor dos píxeis originais.
  6. Usa Copiar texto, Transferir .txt ou Transferir .html. Cada definição atualiza a pré-visualização instantaneamente.

Como funciona a conversão

Primeiro, a imagem é redimensionada para que cada caráter represente um pequeno bloco de píxeis. Como a célula de um caráter numa fonte monoespaçada é cerca de duas vezes mais alta do que larga, a ferramenta usa aproximadamente metade das linhas que uma grelha quadrada exigiria; caso contrário, a arte pareceria esticada na vertical. Uma imagem de 1000 × 500 com 100 caracteres de largura dá 100 × 26 caracteres.

Para cada bloco, a ferramenta calcula a luminância relativa com os pesos Rec. 709 usados no sRGB:

L = 0,2126 × R + 0,7152 × G + 0,0722 × B

O verde é o que pesa mais porque é a cor a que os nossos olhos são mais sensíveis. A luminância escolhe um caráter na escala: uma zona escura recebe um caráter denso como @ ou █, uma zona clara recebe um caráter leve como . ou um espaço. Com Inverter, a correspondência é invertida, porque num fundo preto as zonas claras têm de ser desenhadas com os caracteres mais densos. Os píxeis transparentes contam como papel: branco normalmente, preto quando a imagem está invertida.

Escolher um conjunto de caracteres

  • Padrão ( .:-=+*#%@) é a escala clássica de dez níveis: legível e funciona com qualquer fonte.
  • Detalhado (70 caracteres) dá as transições mais suaves, ideal para retratos com larguras grandes.
  • Blocos ( ░▒▓█) usa caracteres de sombreado Unicode para um aspeto sólido, quase de píxeis.
  • Simples e Pontos dão um estilo gráfico e minimalista.
  • Dois caracteres ( #) cria uma silhueta pura, boa para logótipos.
  • Personalizado aceita quaisquer caracteres, incluindo letras acentuadas e emoji: cada caráter tal como o vês, mesmo um emoji composto por várias partes, é mantido inteiro. Começa com um espaço para que as zonas brancas fiquem vazias.

Dicas para bons resultados

As imagens com bom contraste, um tema claro e um fundo simples dão os melhores resultados. Recorta primeiro a imagem à volta do tema e aumenta o contraste se a foto for baça. Os rostos precisam de pelo menos 80 a 120 caracteres para serem reconhecíveis. Quando colares o texto noutro sítio, usa uma fonte monoespaçada (como Courier, Consolas ou Menlo) e desativa a quebra de linha, senão as colunas não ficam alinhadas. Em emails e aplicações de conversa, coloca-o num bloco de código.

O ficheiro .html contém a arte num bloco <pre> com uma fonte monoespaçada; com a cor ativa, cada sequência de caracteres da mesma cor é um <span> com essa cor, por isso é mostrado em qualquer lado sem scripts.

Perguntas frequentes

Porque é que a minha arte ASCII parece esticada ou achatada?

A fonte ou o espaçamento entre linhas de quem a vê é diferente da pré-visualização. Usa uma fonte monoespaçada com uma altura de linha próxima de 1,15. Alterar a largura não deforma a arte, porque as linhas são calculadas a partir dela.

Posso usar emoji como caracteres?

Sim. Escolhe Personalizado e escreve emoji ordenados do mais claro ao mais escuro, por exemplo ⬜🟨🟧🟥⬛. Na maioria das fontes, os emoji são mais largos do que as letras, por isso reduz a largura.

Porque é que a versão a cores só está disponível em HTML?

Os ficheiros de texto simples não conseguem guardar cores. A transferência .txt e Copiar texto contêm sempre os caracteres sem cor.

A minha foto é enviada para algum servidor?

Não. A imagem é descodificada e convertida no teu navegador; nada é enviado para lado nenhum.

Que largura devo escolher para um terminal?

Um terminal normal tem 80 caracteres de largura; usa 80 ou menos para que as linhas não sejam quebradas.