HairCAPTURE – Utilizando captura de vídeo em C++ (sem segredos)
Parte 3: Compilando e testando os exemplos do pacote de desenvolvimento
Em primeiro lugar, mudaremos para a pasta onde se encontram os códigos-fonte de exemplo:
# cd /usr/share/hairCAPTURE
Se você estiver utilizando o pacote a partir do código-fonte, entre na pasta abaixo:
$ cd install/hairCAPTURE/example
Agora, com o comando make, compile os exemplos:
$ make
g++ -c example01.cpp
g++ -c example02.cpp
g++ -c example03.cpp
g++ -c example04.cpp
g++ -c example05.cpp
g++ example01.o -o example01 -lSDL -lSDL_ttf -lSDL_gfx -lhairCAPTURE
g++ example02.o -o example02 -lSDL -lSDL_ttf -lSDL_gfx -lhairCAPTURE
g++ example03.o -o example03 -lSDL -lSDL_ttf -lSDL_gfx -lhairCAPTURE
g++ example04.o -o example04 -lSDL -lSDL_ttf -lSDL_gfx -lhairCAPTURE
g++ example05.o -o example05 -lSDL -lSDL_ttf -lSDL_gfx -lhairCAPTURE
Pronto. Agora, basta executar os exemplos:
$ ./example05
Fundamentando conceitos de programação
Abaixo, a listagem do código-fonte que utilizarei para explicar o conceito lógico de funcionamento. Mais uma vez menciono que críticas e sugestões devem ser enviadas por e-mail.
#include <fstream>
#include <sstream>
#include <string>
#include <unistd.h>
#include <funcoesCAPTURE.h>
using namespace std;
extern char **environ;
int main(int argc, char *argv[])
{
std::string texto;
HAIR::CAPTURE video1;
video1.Open();
video1.InitVideo();
video1.LoadBMP("tux.bmp");
video1.Line(20,215,320,215,0,255,0);
video1.WriteText(20,220,"Use the Force, READS THE SOURCE!");
video1.Show();
std::cout<<"Enter a message:"; std::cin>>texto;
video1.WriteText(20,220,"Press (Q) for exit the video");
video1.WaitForVideo();
return 0;
}
- HAIR::CAPTURE video1: esta linha instancia a classe de vídeo em memória com o nome de video1;
- video1.Open(): este método inicializa o dispositivo de vídeo captura, define as características como tamanho do buffer, resolução máxima permitida, número de cores e outras propriedades do hardware;
- video1.InitVideo(): nesta linha inicializamos uma janela para exibição do vídeo usando as funções da biblioteca SDL;
- video1.LoadBMP("tux.bmp"): agora carregaremos a imagem tux.bmp. Esta imagem contém o logotipo do tux-jedi. O fundo da imagem de cor rosa é utilizado como transparência da imagem;
- video1.Line(20,215,320,215,0,255,0): Line é um método que desenha uma linha nas coordenadas inicial e final especificadas. Os três últimos argumentos são as cores no formato RGB;
- video1.WriteText(20,220,"Use the Force, READS THE SOURCE!"): já o WriteText escreve um texto nas coordenadas especificadas;
- video1.Show(): o método Show cria uma thread para exibir o vídeo ao vivo;
- video1.WaitForVideo(): agora esta linha aguarda a thread do vídeo ao vivo ser destruída para finalizar a aplicação.
"Conquistas materiais nos proporcionam prazeres momentâneos. Satisfação eterna são para os homens que se tornam o que sonham ser... "
Em vista disto, torne-se um JEDI.
Não use DROGAS, Use LINUX!!!
