SALVANDO IMAGEM DO PICTUREBOX

MESTRE 13/03/2014 10:04:41
#435986
Galera preciso de um help, preciso salvar uma imagem de um picturebox numa pasta

Ai criei os botões só que queria que o botão abrisse aquela janelinha do windows para selecionar a imagem sabe?? que clicasse em [Ô]Anexar imagem[Ô] e abrisse aquela tela que nem abre o anexo de arquivos e imagens do email, e que as imagens fossem salvas de formas sequencias com os nomes
1,2,3,4,5 idenpendentemente do nome da imagem..

Alguem ja fez isso?
TUNUSAT 13/03/2014 10:16:10
#435987
Resposta escolhida
Mestre,

A [Ô]...janelinha do windows para selecionar a imagem...[Ô] deve ser:

Em [Ô]Project[Ô] / [Ô]Components[Ô], na aba [Ô]Controls[Ô] escolha:
Microsoft Common Dialog Control 6.0 (SP6)
CommonDialog - C:\Windows\SysWOW64\comdlg32.ocx

[][ô]s,
Tunusat.
TUNUSAT 13/03/2014 10:27:51
#435989
Mestre,

Para salvar a imagem, você pode usar este exemplo:

SALVAR IMAGEM NO HD
VB / VBA :: Codigo Fonte :: Graficos / Imagens
http://www.vbmania.com.br/pages/index.php?varModulo=Detalhe&varID=7881

Que basicamente é isto:

Private Sub cmdSalvar_Click()
Dim strCaminho As String
Dim strNomeImagem As String

strCaminho = App.Path
strNomeImagem = [Ô]Foto.jpg[Ô] [ô][Ô]Foto.bmp[Ô]

If InStr(Mid(strCaminho, Len(strCaminho), 1), [Ô]\[Ô]) <> 1 Then
strCaminho = strCaminho & [Ô]\[Ô]
End If

strCaminho = strCaminho & strNomeImagem

SavePicture Me.picImagem.Image, strCaminho
End Sub


Você pode ler todo o o conteúdo de uma pasta e depois colocar em um looping que pode ser de [Ô]FOR[Ô] ou de [Ô]WHILE[Ô] incrementando um número na hora de fazer o [Ô]SavePicture[Ô].

é tudo?

[][ô]s,
Tunusat.
MESTRE 13/03/2014 11:15:37
#435995
Exatamente isso que eu queria valeu cara.. mas nao conseguir chamar a janelinha, mesmo adicionando nos componentes:
Microsoft Common Dialog Control 6.0 (SP6)
CommonDialog - C:\Windows\SysWOW64\comdlg32.ocx

na verdade nao preciso chamar a janelinha pra Salvar, pois salvar sou eu que vou definir o caminho, preciso que chame a janelinha pra pessoa selecionar a imagem e exibir no picture box..
TUNUSAT 13/03/2014 11:33:25
#435997
Mestre,

é assim:

Você coloca o objeto [Ô]CommonDialog[Ô] dentro do seu form ... vai aparecer um quadradinho cinza com desenhos dentro.
Dai você já pode usar ele com o nome defalut [Ô]CommonDialog1[Ô] ou colocar o nome que quiser no objeto (não esqueça de usar a notação húngara - http://support.microsoft.com/kb/173738/pt-br)
Dentro dele tem vários [Ô]Show[Ô] (cada um faz uma coisa diferente) ... o que você quer é o [Ô]CommonDialog1.ShowOpen[Ô].
Tem como configurar o [Ô]ShowOpen[Ô] na abertura também! é possível só deixar o usuário usar arquivos [Ô]*.jpg[Ô] na abertura, qualquer outro tipo ou mais de um tipo enter outras configurações.

Exemplo rápido:

COMMONDIALOG E BACKCOLOR
VB / VBA :: Codigo Fonte :: Tratamento de codigo
http://www.vbmania.com.br/pages/index.php?varModulo=Detalhe&varID=7996

Basicamente:

Private Sub cmd1_Click()
cmdg.ShowColor
Form1.BackColor = cmdg.Color
End Sub



Veja se você consegue entender legal. Se tiver dificuldades eu monto um exmplo para você.


[][ô]s,
Tunusat.
MESTRE 13/03/2014 12:01:11
#435999
Nossa obrigado cara, como eu carrego a imagem clicada no picture box???

Filtrei desse jeito veja se esta certo:
[th][/th]
Private Sub BotaoSelecionaImagem_Click()
Cmdlg.Filter = [Ô]All Compatible Picture Types (*.Jpg *.gif *.png)|*.jpg[Ô]
Cmdlg.ShowOpen

End Sub


TUNUSAT 13/03/2014 13:11:29
#436003
MESTRE,

Acho que fica mais fácil o exemplo anexo [Ô]CommonDialog.zip[Ô].

Só tem um problema...
Ele guarda em uma variável [Ô]global[Ô] o contador (1, 2, 3, 4, 5).
Porém se você fechar o programa e quiser abrir o programa de novo e continuar a contagem (6, 7, 8, ...) não vai funcionar, porque a variável foi perdida. Para sanar este problema, existem inúmeras formas. Exemplos:

1 - Salvar o número do contador em um arquivo texto;
2 - Salvar o número do contador no registry da máquina;
3 - Salvar o número do contador em um banco de dados;
4 - Salvar o número do contador em um arquivo XML;
5 - Salvar o número do contador em um arquivo CVS;

Outras formas:
6 - Pedir dentro do formulário (form1) em uma TextBox para o usuário digitar próximo número.
7 - Ler a pasta que estão os aquivos salvados e achar qual é o aruivo que tem o maior número e continuar a contagem apartir daquele ponto.

Você pode combinar as formas também. Exemplo: 7 combinando com 1 + 6 (carregando).
OKay?


[][ô]s,
Tunusat.
MESTRE 14/03/2014 07:31:30
#436029
Obrigado TUNUSAT , resolveu meu problema era isso mesmo que queria! deu tudo certo.. e implementei algumas outras funçoes nele..

agora deixa eu te perguntar voce sabe como faz para por exemplo bloquear que o usuário seleciona imagens acima de 2 MB???

TUNUSAT 14/03/2014 10:10:27
#436036
MESTRE,


Ixi ... ai eu não sei ...

Acho que o [Ô]OpenFileDialog[Ô] não faz este trabalho no VB6, somente no VB.Net tem uma propriedade de nome [Ô]MaxSize[Ô].

No VB6 tem a propriedade [Ô]MaxFileSize[Ô], mas ela só gerencia buffer.
Exemplo: Cmdlg.MaxFileSize = &H7FFF [ô] 32KB buffer

Tem também as propriedades [Ô]Max[Ô] e [Ô]Min[Ô] ... não entendi para que serve.

Teria que ser de outra forma...
... talvez através da PictureBox.

http://www.macoratti.net/08/02/vb_zoom.htm

Mas ai poderia fazer assim ... para imagens maiores que 2MBytes ela seria redimensionada para no máximo 2Mbytes. Pode ser?

Ou então barrada ...


[][ô]s,
Tunusat.
MESTRE 14/03/2014 11:19:01
#436042
Pode ser , exatamente disso que preciso redimensionar o tamanho das imagens acima de 2MB para 2MB , como faço isso no vb6? vou dar uma olhada nessa Source ..

Muito obrigado cara!

eh entao eu sei, conheço mais vb.net do que vb6 HAHAH..
MARCELO.TREZE 14/03/2014 11:37:30
#436043
você terá de usar FSO para saber o tamanho do arquivo, o commondialog não faz isso, mas não é bicho de sete cabeças, veja você captura o caminho do arquivo com o commomdialog, de depois passa esse caminho pro fso, na pratica

vá em projects/references e selecione [txt-color=#0000f0]Microsoft Scripting Runtime[/txt-color]

no código do commondialog acrescente

Dim fso As New FileSystemObject
Dim arq As File


depois de capturar o caminho da imagem (variavel que armazena o resultado de .FileName) e antes de salvar coloque

Set arq = fso.GetFile(variavel) [txt-color=#007100][ô] a variavel que armazena o caminho ex: caminho = Cmdlg.FileName[/txt-color]

Set arq = fso.GetFile(variavel)
If FormatNumber(arq.Size / 1024, 0) > 2048 Then
msgbox [Ô]Imagem não pode ter mais que 2 mb[Ô]
Exit Sub
End If
Página 1 de 2 [14 registro(s)]
Tópico encerrado , respostas não são mais permitidas