ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Captura livre no Delphi [Resolvido]

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
wjuniordias
Profissional
Profissional


Registrado: Sexta-Feira, 16 de Março de 2012
Mensagens: 667

MensagemEnviada: Ter Abr 18, 2017 2:20 pm    Assunto: Captura livre no Delphi [Resolvido] Responder com Citação

Boa tarde pessoal.

Alguém sabe como fazer um recurso semelhante a "ferramenta de captura" do windows 7?
Onde o usuario define a área que ele quer capturar em forma de print.

Grato.
_________________
"O sábio nunca diz tudo o que pensa, mas pensa sempre tudo o que diz." (Aristóteles)


Editado pela última vez por wjuniordias em Ter Out 24, 2017 7:26 am, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Visitar a homepage do Usuário MSN Messenger
strak2012
Colaborador
Colaborador


Registrado: Segunda-Feira, 13 de Janeiro de 2014
Mensagens: 1518
Localização: Maceió - AL

MensagemEnviada: Ter Abr 18, 2017 3:05 pm    Assunto: Responder com Citação

Há pelo menos duas forma de ser feita.

1º - Ao capturar a tela completa em um bmp, você pode recortar apenas o que lhe é de interessante e descartar o resto.

2º - Na própria captura você pode fornecer o handle da janela ou objeto visual, neste caso você captura apenas a janela do handle informado.

Há uma 3º forma que é combinar a 1º forma com o auxilio HRGN, para este você pode capturar área não regular, por exemplos: polígonos irregulares, círculos, triângulos e outras formas.
_________________
Tudo podemos quando tudo sabemos!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
wjuniordias
Profissional
Profissional


Registrado: Sexta-Feira, 16 de Março de 2012
Mensagens: 667

MensagemEnviada: Seg Out 23, 2017 1:16 pm    Assunto: Responder com Citação

Tentei seguir os seguintes exemplos:

1:
https://pt.stackoverflow.com/questions/96843/recortar-um-pedaço-da-imagem-usando-mouse

2:
https://stackoverflow.com/questions/32427396/create-a-rectangle-hole-on-form-with-my-mouse

Porém, não consegui adaptá-los para que fique igual a ferramenta do Windows.
Eu gostaria que o usuário definisse de maneira livre, a área a ser recortada e jogada no componente "TImage".
_________________
"O sábio nunca diz tudo o que pensa, mas pensa sempre tudo o que diz." (Aristóteles)
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Visitar a homepage do Usuário MSN Messenger
strak2012
Colaborador
Colaborador


Registrado: Segunda-Feira, 13 de Janeiro de 2014
Mensagens: 1518
Localização: Maceió - AL

MensagemEnviada: Seg Out 23, 2017 5:32 pm    Assunto: Responder com Citação

Nossa este tempo todo e só agora resolveu falar algo.
Se tivesse perguntado antes teria tirado qualquer duvida sua a mais tempo.

Bom segue um exemplo pratico e funcional do que necessita.

download aqui

Pode sempre melhorar algo no fonte.
Foi usado o CopyRect como copiador da região desejada, o ideal seria o BitBlt, mais ambos terão o efeito desejado.

o segundo só seria melhor que o primeiro na sua visualização no Timage pois é possível remover o efeito pixels da imagem


O código fonte foi compilado usando o delphi 10 Seattle
_________________
Tudo podemos quando tudo sabemos!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
wjuniordias
Profissional
Profissional


Registrado: Sexta-Feira, 16 de Março de 2012
Mensagens: 667

MensagemEnviada: Ter Out 24, 2017 7:25 am    Assunto: Responder com Citação

Desculpe pela demora, é que estou tendo problemas com a minha internet.
Muito obrigado pelo exemplo, era exatamente o que eu estava procurando. Abraço.
_________________
"O sábio nunca diz tudo o que pensa, mas pensa sempre tudo o que diz." (Aristóteles)
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Visitar a homepage do Usuário MSN Messenger
strak2012
Colaborador
Colaborador


Registrado: Segunda-Feira, 13 de Janeiro de 2014
Mensagens: 1518
Localização: Maceió - AL

MensagemEnviada: Ter Out 24, 2017 12:01 pm    Assunto: Responder com Citação

Seguem o link com uma pequena modificação para melhorar a visualização do recorte.

download aqui
_________________
Tudo podemos quando tudo sabemos!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
wjuniordias
Profissional
Profissional


Registrado: Sexta-Feira, 16 de Março de 2012
Mensagens: 667

MensagemEnviada: Ter Out 24, 2017 1:36 pm    Assunto: Responder com Citação

Perfeito.
Obrigado.
_________________
"O sábio nunca diz tudo o que pensa, mas pensa sempre tudo o que diz." (Aristóteles)
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Visitar a homepage do Usuário MSN Messenger
strak2012
Colaborador
Colaborador


Registrado: Segunda-Feira, 13 de Janeiro de 2014
Mensagens: 1518
Localização: Maceió - AL

MensagemEnviada: Ter Out 24, 2017 3:20 pm    Assunto: Responder com Citação

Mais outras pequenas alterações

Segue o link:download aqui

Alterações:
Suporte a zoom + -
Possibilidade de capturar a região a ser exibida no Timagem em tempo real.


Só faltava mesmo era gerar um vídeo da região capturada em tempo real e ficaria show kkkkkk.
Se bem que é possível mais neste caso seria necessário trabalhar com o formato jpeg para ir montando os frames do vídeo é um pouco mais complicado e trabalhoso.
_________________
Tudo podemos quando tudo sabemos!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
wjuniordias
Profissional
Profissional


Registrado: Sexta-Feira, 16 de Março de 2012
Mensagens: 667

MensagemEnviada: Qua Out 25, 2017 7:28 am    Assunto: Responder com Citação

Rapaz, isso ficou top demais. Esse recurso do zoom é perfeito.
Vlw msm kkkk
_________________
"O sábio nunca diz tudo o que pensa, mas pensa sempre tudo o que diz." (Aristóteles)
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Visitar a homepage do Usuário MSN Messenger
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB