Pipe STDOUT para uma imagem?

1

Recentemente, eu queria executar um comando de terminal como "git show < hash >" e salve a saída em uma imagem, um PNG, de preferência.

Eu pesquisei um pouco no Google e encontrei alguns truques legais, com o comando import notably, mas nada que pudesse capturar STDOUT de forma confiável e salvá-lo como uma imagem.

Então, eu pensei em pedir a confiança do cérebro aqui. Alguém tem uma solução testada e verificada para o Linux?

    
por rjh427 28.06.2017 / 21:07

2 respostas

2

Como converter texto em uma imagem já foi respondido aqui: Essa resposta fornece várias variantes sobre como fazer isso com as ferramentas do ImageMagick.

Por favor, note: Isso só funcionará de maneira confiável se a saída do seu comando for texto simples.
Se houver algum tipo de formatação sofisticada (como coisas ncurses), os resultados podem ser bastante imprevisíveis.

    
por 28.06.2017 / 21:48
0

Resposta parcial, listando algumas possibilidades:

Existem vários programas que você pode usar para renderizar texto em imagens, por exemplo:

  • convert do ImageMagick / GraphicsMagick
  • pbmtext do NetPBM, renderiza para o Bitmap portátil
  • paps , renderiza para Postscript usando o Pango
  • enscript , processa para Postscript

Mas a conversão de um formato diferente para o PNG não deve ser um problema.

Destes, apenas enscript suporta cores através de "escapes especiais". Estes não são os mesmos que o terminal escapa, então você irá convertê-los com o awk / perl etc.

Outra opção é renderizar tudo em um xterm e captura de tela.

Como você pode ver, todos eles são bem complicados, requererão um esforço não trivial para fazê-los funcionar. O que não é surpresa, porque basicamente você quer replicar toda a parte de renderização do seu terminal.

Pode ser mais fácil apenas armazenar a saída em si e recuperá-la em um terminal quando quiser examiná-la.

    
por 29.06.2017 / 10:13