Pergunta

Eu preciso escrever uma ferramenta de linha de comando do Red Hat Linux que inicia uma janela e captura sua aparência no disco como um JPEG.

Normalmente as máquinas de destino não têm placas gráficas, mas podemos instalar qualquer componente de software (por exemplo, X).

ou duas perguntas:

O que bibliotecas ou ferramentas que você pode sugerir para isso?

Se eu fosse usar algo como GTK + para criar essa ferramenta, seria falta de uma placa de vídeo dificultam a sua execução?

Eu vi scrot, mas ele não aparece para apoiar a captura de uma janela específica, sem interação do usuário.

Foi útil?

Solução

Parece que você vai precisar usar o " framebuffer virtual "motorista para o servidor X.org, combinado com o xwd , NetPBM , e cjpeg utilitários.

Eu não tenho certeza sobre a configuração particular que você precisa para o servidor X, mas você provavelmente vai ter que garantir que o servidor que você está usando tem o driver framebuffer virtual embutido para. O driver framebuffer virtual é um driver de vídeo apenas como aquele que você usaria para conectar-se a uma placa de vídeo NVidia ou ATI, exceto que é "saída" é um pedaço de memória que contém os pixels, não uma tela de LCD.

xwd é uma das ferramentas X padrão, que pode criar um despejo X Window. xwd pode ser contada na linha de comando que a janela para despejar. Ele produz um badalado "XWD" fluxo formatado para fora padrão.

Os utilitários NetPBM são uma coleção de ferramentas de linha de comando que converter um formato de imagem para outra. Ele inclui um que converte xwdtoppm. PPM é um formato muito básico, não comprimido que é o formato intermediário compreendido pela maioria das ferramentas NetPBM.

cjpeg é parte da coleção padrão ferramentas JPEG, e provavelmente é instalado se você também tem NetPBM. cjpeg pode tomar um fluxo de bytes PPM e emitem um fluxo de JPEG bytes.

Através da magia do Unix scripting e tubos, você pode corda esses utilitários junto ao fogo até o aplicativo com a janela, xwd chamada, xwdtoppm e cjpeg para despejar a imagem para um arquivo.

Outras dicas

Você pode tentar executar vncserver para criar uma vitrine X virtual - sem placa gráfica necessário. Certifique-se de definir a variável DISPLAY para o número de exibição que será impresso quando vncserver começa. Em seguida, iniciar a sua aplicação no visor criado (em fundo hte) e uso xwd com formatadores de dados ou um comando gimp para capturar a imagem da tela para jpeg.

A propósito, confira as respostas semelhantes para programa para criar site screenshots (no Linux) .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top