Jump to content
JScript

Capture Selected! (Printscreen Melhorado...)

Recommended Posts

Olá!

 

Quando comecei a fazer esse pequeno programa para selecionar, capturar e salvar telas foi após ter visto como é a captura de telas no MacOS, é simplesmente fantástico, nada tem a ver com a tecla [PrintScreen] do Windows...

 

Comecei a fazer e usar há um bom tempo, quando pensei em publicar verifiquei que já existe algo até mais complexo e com mais funções do que meu simples sistema!

 

Bem, é simples mas fácil de usar: Acione a tela de captura com as teclas [Ctrl] + [F1], mova a tela para o local que deseja, redimensione de acordo com a área desejada e tecle [Enter], abrirá a janela para definir o local e o nome para salvar a imagem, simples assim!

 

Código fonte (bem bagunçado mas funcional...)

Download:

CaptureSelected_(RedirectLink).html

 

Se alguém tiver interesse em contribuir com mais funções e idéias, não hesite!

 

Espero que gostem,

 

João Carlos.

  • Like 7

Share this post


Link to post
Share on other sites

Aqui não deu certo parece estar faltando arquivos, as pastas Include está vazia

 

show de bola :up:

 

tu usou as cordenadas da janela, como não pensei nisso antes :o

 

Muito obrigado por compartilhar

Share this post


Link to post
Share on other sites

Ôpa, muito obrigado pela observação amigo, já foi corrigido o arquivo .zip!

 

Testa novamente ai,

 

João Carlos.

Share this post


Link to post
Share on other sites

Gostou não é? Viu como é simples: pega as cordenadas da janela semi-transparente e pinba!

Facinho, facinho..

 

Abraços,

 

João Carlos.

Share this post


Link to post
Share on other sites

Maravilha, agora nem vou precisar usar o paint prá recortar a parte que eu for usar pois com este ficou muito mais prático e rápido.

Share this post


Link to post
Share on other sites

Fico bastante feliz por vocês terem gostado, podem dar sugestões ok?

 

Abraços,

 

João Carlos.

Share this post


Link to post
Share on other sites

Seria bom poder escolher a extensão que a imagem será salva, tem um script que guardei que talvez possa ajudar.

 

 

;$sInImage = caminho de origem da imagem com extensão atual
;$sOutImage = caminho de destino da imagem e a extensão que será salva
;$iW = tamanho horizontal que a imagem ficará
;$iH = tamanho vertical que a imagem ficará

Func _ImageResize($sInImage, $sOutImage, $iW, $iH)
Local $sOP, $sOF, $sInExt, $ext, $hBitmap, $hImage1, $hImage2, $hGraphic, $CLSID, $i = 0
Local $sType = "BMP|GIF|JPG|JPEG|PNG|TIF|TIFF"

If Not FileExists($sInImage) Then Return SetError(1, 0, 0)
$sInExt = StringUpper(StringTrimLeft($sInImage, StringInStr($sInImage, ".", 0, -1)))
If Not StringRegExp($sInExt, "\A(" & $sType & ")\z", 0) Then Return SetError(2, 0, 0)
$sOP = StringLeft($sOutImage, StringInStr($sOutImage, "\", 0, -1))
If Not FileExists($sOP) Then Return SetError(3, 0, 0)
$sOF = StringTrimLeft($sOutImage, StringInStr($sOutImage, "\", 0, -1))
$ext = StringUpper(StringTrimLeft($sOutImage, StringInStr($sOutImage, ".", 0, -1)))
If Not StringRegExp($ext, "\A(" & $sType & ")\z", 0) Or $ext = "ICO" Then Return SetError(4, 0, 0)
If Not IsInt($iW) And Not IsInt($iH) Then Return SetError(5, 0, 0)
$hBitmap = _WinAPI_CreateBitmap($iW, $iH, 1, 32)
_GDIPlus_Startup()
$hImage1 = _GDIPlus_BitmapCreateFromHBITMAP($hBitmap)
$hImage2 = _GDIPlus_ImageLoadFromFile($sInImage)
$hGraphic = _GDIPlus_ImageGetGraphicsContext($hImage1)
DllCall($ghGDIPDll, "int", "GdipSetInterpolationMode", "hwnd", $hGraphic, "int", "7")
_GDIPlus_GraphicsDrawImageRect($hGraphic, $hImage2, 0, 0, $iW, $iH)
$CLSID = _GDIPlus_EncodersGetCLSID($ext)
_GDIPlus_ImageSaveToFileEx($hImage1, $sOutImage, $CLSID)
_GDIPlus_ImageDispose($hImage1)
_GDIPlus_ImageDispose($hImage2)
_GDIPlus_GraphicsDispose($hGraphic)
_WinAPI_DeleteObject($hBitmap)
_GDIPlus_Shutdown()
FileDelete($sInImage)
Return SetError(0, 0, 1)
EndFunc   ;==>_ImageResize

 

Share this post


Link to post
Share on other sites

Esse exemplo que postou é para redimensionar...

 

Para salvar no formato que você deseja, basta colocar a extensão desejada, os formatos são:

; BMP, GIF, JPEG, PNG and TIF

Isso deve-se à função _ScreenCapture_SaveImage() onde para salvar no formato desejado, basta colocar a extensão do formato:

_ScreenCapture_SaveImage()

;This function saves a bitmap to file, converting it to the image format specified by the file name extension.
;For Windows XP, the valid extensions are BMP, GIF, JPEG, PNG and TIF.

Onde o nome padrão para salvar é Captured_Image.jpg, então para salvar no formato .png basta trocar a extensão!

 

Abraços,

 

João Carlos.

Share this post


Link to post
Share on other sites

Entendi, mas como fiz de forma rápida, basta você mesmo dar um nome com a extensão do formato que deseja...

Experimente trocar a extensão .jpg para .bmp ou .png, vai ver que o arquivo é salvo no formato desejado!

 

Depois eu adiciono essa forma ai que é mais conhecida!

 

Edit: Veja os formatos salvos que fiz apenas alterando a extensão:

Captured_Formats.zip

 

Abraços,

 

João Carlos.

Share this post


Link to post
Share on other sites

@Belini

A opção de Salvar como tipo já foi adicionada, é só escolher...

 

Abraços,

 

João Carlos.

Share this post


Link to post
Share on other sites

Mudou as opções mais o nome que o arquivo será salvo ainda continua com a extensão JPG e não consegui pegar na variável $sSavePath a informação da extensão escolhida para mudar o nome que o arquivo será salvo e acho que sem mudar este nome continua sendo salvo no formato JPG.

 

 

Captured_Image.jpg

 

Share this post


Link to post
Share on other sites

Esse nome junto com a extensão é apenas o nome que dei como padrão, nada mais!

 

Na hora em que você escolher o formato que deseja salvar no campo [salvar como tipo], a extensão mudará automáticamente, já vi que você não tentou ou não observou isso!

Experimente ir clicando nas opções de salvar e verás a extensão mudando sozinha...

 

Abraços,

 

João Carlos.

Share this post


Link to post
Share on other sites

Antes de postar testei sim e com todas as extensões disponíveis mais como o nome Captured_Image.jpg não muda continua salvando sempre em JPG, pelo menos aqui é assim que acontece.

 

 

teste.gif

 

Share this post


Link to post
Share on other sites

Não testei no XP ainda...

 

Veja que funciona no Seven:

 

salvar10.gif

 

 

Edit: Testei no XP e realmente não funciona!

 

Abraços,

 

João Carlos.

Share this post


Link to post
Share on other sites

Olá!

 

Uma pequena modificação foi dada ao programa para garantir o funcionamento no Windows XP.

A captura da tela estava apos a janela de gravação, agora a tela é capturada antes de aparecer a janela!

 

Abraços,

 

João Carlos.

Share this post


Link to post
Share on other sites

E o problema de sempre salvar em jpg não conseguiu resolver?

 

EDITADO: Testei com a função nativa e também acontece a mesma coisa então deve ser mais complicado de se resolver.

Share this post


Link to post
Share on other sites

@JScript como eu posso aumentar e diminuir o grau de transparência da janela ?

Gostei muito dessa forma, só que estéticamente gostaria de deixar visivel apenas o contorno da janela ..... e dentro da janela praticamente transparente 100%

Share this post


Link to post
Share on other sites

OK, pedido atendido, mas lembre-se: Para o WinXP não irá funcionar como no Vista~, pois a imagem com setas para mover a janela não aparece no XP e nesse caso não poderás mover a janela com o mouse...

 

Download:

Main.au3

 

Abraços,

 

João Carlos.

Share this post


Link to post
Share on other sites

@JScript ........ Maravilhoso! Do jeitinho que eu queria.

 

EXP 1: Vc está falando da imagem "Slection.bpm"?

Não aparece no XP?

Bom essa realmente n aparece, mas olhei a source e não achei ela definida em local algum.

 

EXP 2: Caso estiver falando da "Selection1.bpm" esta aparece centralizada na janela. Uso winxp

 

Bom caso não for referente a explicação 1 desconsidere e considere a 2 ..... e vice versa!

 

Achei até que as 2 imagens fosse para aparecer "a gosto do freguês".

Edited by Anderson_sc

Share this post


Link to post
Share on other sites

Não é .bpm e sim .png!

E eu errei o nome da imagem, era pra ser Selection.png, foi porque não digitei a letra e...

 

Sobre o SO, eu testei no Windows XP SP3 e não apareceu a imagem, qual é o build do seu?

 

Abraços,

 

João Carlos.

Share this post


Link to post
Share on other sites

O primeiro post foi corrigido com uma versão que funciona em qualquer WinXP!

Refaçam o download do arquivo .zip.

 

Abraços,

 

João Carlos.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


×