SALVANDO IMAGEM DO PICTUREBOX
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?
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?
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.
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.
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:
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.
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.
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..
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..
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:
Veja se você consegue entender legal. Se tiver dificuldades eu monto um exmplo para você.
[][ô]s,
Tunusat.
é 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.
Nossa obrigado cara, como eu carrego a imagem clicada no picture box???
Filtrei desse jeito veja se esta certo:
[th]
Filtrei desse jeito veja se esta certo:
[/th] |
Private Sub BotaoSelecionaImagem_Click() Cmdlg.Filter = [Ô]All Compatible Picture Types (*.Jpg *.gif *.png)|*.jpg[Ô] Cmdlg.ShowOpen End Sub |
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.
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.
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???
agora deixa eu te perguntar voce sabe como faz para por exemplo bloquear que o usuário seleciona imagens acima de 2 MB???
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.
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.
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..
Muito obrigado cara!
eh entao eu sei, conheço mais vb.net do que vb6 HAHAH..
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
depois de capturar o caminho da imagem (variavel que armazena o resultado de .FileName) e antes de salvar coloque
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
Tópico encerrado , respostas não são mais permitidas