Como posso salvar uma janela de terminal rolável (RoxTerm) em uma imagem png?

3

Eu gostaria de salvar uma saída de terminal colorida do programa Ruby em um arquivo png, a saída não cabe na altura da tela, então é rolável. É possível salvar toda ou parte da área da janela do terminal rolável (não apenas a parte visível, é claro, mas rolando um pouco para cima) em um arquivo png?

    
por Konstantin 29.07.2018 / 19:45

2 respostas

1

Você não precisa usar uma tela real de tamanho limitado. Crie uma tela virtual do tamanho necessário para mostrar toda a sua saída de uma só vez e, em seguida, despeje essa tela ou terminal. Por exemplo:

$ Xvfb :1 -screen 0 100x4000x24 -noreset &
$ xterm -geometry 10x200 -display :1 -e \
   sh -c 'echo $WINDOWID >/tmp/id;ls -l /etc;sleep 99' &
$ DISPLAY=:1 convert x:$(cat /tmp/id) /tmp/out.png 
$ identify /tmp/out.png
  /tmp/out.png PNG 79x2604 ...

Isso cria uma tela de 100 por 4000 pixels, com um xterm 200 linhas altas. A variável WINDOWID é exportada por xterm e pode ser fornecida ao programa convert do ImageMagick para copiar a imagem para um arquivo png. O comando identify mostra que todo o conteúdo xterm foi capturado, o que não seria o caso da minha tela real de apenas 1080 pixels.

    
por 30.07.2018 / 10:04
1

Eu tenho usado o asciienma.org (anteriormente ascii.io) para criar sessões gravadas para tutoriais que eu preciso incorporar / compartilhar de ações em um terminal. As gravações podem ser salvas e baixadas em um formato .cast que você pode converter para um formato .gif.

Para converter os arquivos .cast para .gif, eu uso este projeto - asciicast2gif . Os resultados falam por si:

Referências

por 30.07.2018 / 00:08