SALVAR DE BMP PARA JPG. ARQUIVO AINDA TA GRANDE...
Tem alguma outra forma de converter BMP em JPG fora o jeito que o artigo abaixo explica?
http://www.vbmania.com.br/vbmania/vbmdetail.php?varID=1220&TxtSearch=gdi&CmbSort=&varPagina=1
Do jeito que o artigo ensina, uma foto .bmp de 633KB fica com 169KB.
Usando o Paint do Windows, salvei como JPG e os mesmos 633KB caÃÂÂram para 37KB. E pra um acervo de 1000 fotos, faz mta diferença...
[ ]ÂÂ's
http://www.vbmania.com.br/vbmania/vbmdetail.php?varID=1220&TxtSearch=gdi&CmbSort=&varPagina=1
Do jeito que o artigo ensina, uma foto .bmp de 633KB fica com 169KB.
Usando o Paint do Windows, salvei como JPG e os mesmos 633KB caÃÂÂram para 37KB. E pra um acervo de 1000 fotos, faz mta diferença...
[ ]ÂÂ's
Cara, eu to tentando mais ou menos a mesma coisa..
inclusive, to tentando até, comunicar o VB com o Paint...pra tentar fazer isso..mas ta complicado
vamos nos ajudar e tentar matar esse LEÃO
Boa sorte
Outros softwares (como Corel, Photo, etc) também conseguem converter. Acho que o esquema é usar API. Mas tá meio complicado achar...
é eu sei...eu tenho como fazer com photoshop sem problemas, mas daào cliente tem que ter o programa tb ..entendeu..por isso ..queria algo no Paint
Olha só... segue em anexo um projeto tipo o Paint.
Ele abre arquivos e depois vc consegue salvar com várias extensões.
Fiz alguns testes, ele não foi tão eficiente quanto o Paint, mas chegou perto, foi melhor do que vc postou.
O Gif que ele salva sim ficou muito pequeno.
Dê uma olhada.
Ele abre arquivos e depois vc consegue salvar com várias extensões.
Fiz alguns testes, ele não foi tão eficiente quanto o Paint, mas chegou perto, foi melhor do que vc postou.
O Gif que ele salva sim ficou muito pequeno.
Dê uma olhada.
O Paint salva com um tamanho menor porque ele salva com uma qualidade menor.
No artigo ali a função aceita um parametro de qualidade, ja tentou colocar um valor menor nele pra ver que tamanho fica a imagem?
Vai testando diminuir pra ver até onde fica aceitavel a qualidade da imagem.
No artigo ali a função aceita um parametro de qualidade, ja tentou colocar um valor menor nele pra ver que tamanho fica a imagem?
Vai testando diminuir pra ver até onde fica aceitavel a qualidade da imagem.
DLL para converter BMP p/ JPG
Dê uma olhada nesta DLL e veja se os ajuda.
Eu vàem um outro site, gostei e nã otive problemas.
Tava com PAU, fiz umas pequenas alterações e funcionou legal para o que eu precisava.
Dê uma olhada nesta DLL e veja se os ajuda.
Eu vàem um outro site, gostei e nã otive problemas.
Tava com PAU, fiz umas pequenas alterações e funcionou legal para o que eu precisava.
O programa postado pelo MARCELOHF até que converte legal. De 633KB(em BMP) ele vai para 64KB (em JPG). Embora o paint salve em 37KB.
Em relação àqualidade, não vi diferença em relação às fotos. Já fi perder qualidade quando são PrintScreen.
Em relação àbiblioteca 'converter.dll', acho que não estou sabendo usar. Copiei para System32, registrei e usei no meu commandbutton, mas dá um erro: 'Only comments may appear after End Sub, Edn Function, or End Property'. O VB nem deixa rodar o programa.
Usei no meu programa assim:
[/c]
Hoje com ajuda do fórum fiz um programa que pega uma foto já em JPG, numa resolução bem grande, e redimensiona para 800x600. Só que o programa salva a foto no formato BMP com extenção JPG (tipo quando vc renomeia no windows explorer FOTLEGAL.BMP para FOTOLEGAL.JPG. Ou seja, vc mudou somente a extenção, mas o formato ainda é BMP).
Abaixo o código que redimensiona:
[/c]
Ele redimensiona sem problemas, mas embora eu coloque pra salvar com extenção JPG, fica no formato BMP e, consequentemente, o tamanho aumenta.
Aàresolvi então tentar converter de BMP pra JPG. Embora sejam dois trabalhos (redimensionar e depois converter de novo pra JPG) foi a única maneira que achei.
Será que existe a possibilidade de redimensionar as fotos pra 800x600 (que já estão em JPG) sem precisar salvar em BMP pra não ter que converter novamtente pra JPG?
Enquanto não chego numa solução, uso um software que veio junto com meu scanner de 1995! (o software chama MGI PhotoSuite SE - Ver 1.06) Mas redimensiona que é uma beleza! é hiper levinho. Acho que o setup tem só 16MB. é um programa muito bom.
Então se esse programinha de 1995 redimensiona de qq tamanho pra 800x600 (além de outras resoluções), pq eu não posso!?!?
Esse é o problema...
Em relação àqualidade, não vi diferença em relação às fotos. Já fi perder qualidade quando são PrintScreen.
Em relação àbiblioteca 'converter.dll', acho que não estou sabendo usar. Copiei para System32, registrei e usei no meu commandbutton, mas dá um erro: 'Only comments may appear after End Sub, Edn Function, or End Property'. O VB nem deixa rodar o programa.
Usei no meu programa assim:
[c]Private Sub Command1_Click()
'Função usada para converter de BMP para JPG.
Public Declare Function BMPToJPG Lib "converter.dll" (ByVal InputFilename As String, ByVal OutputFilename As String, ByVal Quality As Long) As Integer
'Converte do formato BMP para o formato JPG.
BMPToJPG Diretorio_Temp & "Imagem.BMP", Diretorio_Temp & "Imagem.JPG", 10 'Qualidade Da imagem JPG
End Sub
[/c]
Hoje com ajuda do fórum fiz um programa que pega uma foto já em JPG, numa resolução bem grande, e redimensiona para 800x600. Só que o programa salva a foto no formato BMP com extenção JPG (tipo quando vc renomeia no windows explorer FOTLEGAL.BMP para FOTOLEGAL.JPG. Ou seja, vc mudou somente a extenção, mas o formato ainda é BMP).
Abaixo o código que redimensiona:
[c]Private Sub Command1_Click()
'Colocando a foto no controle Picture1
Picture1.Picture = LoadPicture("d:\FOTOLEGAL.jpg")
End Sub
Private Sub Command2_Click()
'Redimensionando para o mesmo tamanho de Picture2
Picture2.PaintPicture Picture1.Picture, 0, 0, Picture2.Width, Picture2.Height
'Salvando...
SavePicture Picture2.Image, "d:\FOTOLEGALxxx.jpg"
End Sub
[/c]
Ele redimensiona sem problemas, mas embora eu coloque pra salvar com extenção JPG, fica no formato BMP e, consequentemente, o tamanho aumenta.
Aàresolvi então tentar converter de BMP pra JPG. Embora sejam dois trabalhos (redimensionar e depois converter de novo pra JPG) foi a única maneira que achei.
Será que existe a possibilidade de redimensionar as fotos pra 800x600 (que já estão em JPG) sem precisar salvar em BMP pra não ter que converter novamtente pra JPG?
Enquanto não chego numa solução, uso um software que veio junto com meu scanner de 1995! (o software chama MGI PhotoSuite SE - Ver 1.06) Mas redimensiona que é uma beleza! é hiper levinho. Acho que o setup tem só 16MB. é um programa muito bom.
Então se esse programinha de 1995 redimensiona de qq tamanho pra 800x600 (além de outras resoluções), pq eu não posso!?!?
Esse é o problema...
Não faça a referÃÅ ncia no botão, faça a referência no TOPO da página de códigos... Acho que é nisso que o seu programa está se perdendo.
Poois na hora que o VB faz a "pré-compilação" do seu código para rodar, ele verá essa declaração no evento do botão e não vai entender bulhufas...
Poois na hora que o VB faz a "pré-compilação" do seu código para rodar, ele verá essa declaração no evento do botão e não vai entender bulhufas...
Opa...
Tava dando erro pq a função tinha que estar dentro de um módulo...
Criei um módulo, aàfuncionou... Converte que é uma beleza e fica do mesmo tamanho de uma que foi convertida no Paint. Ficou perfeito. Vlw!
Agora só falta redimensionar uma figura que já está no formado JPG e depois de redimensionada ela continuar no formato JPG.
Vi que o programa que o MARCELOHF passou, faz isso. Mas ainda não consegui entender como...
Tava dando erro pq a função tinha que estar dentro de um módulo...
Criei um módulo, aàfuncionou... Converte que é uma beleza e fica do mesmo tamanho de uma que foi convertida no Paint. Ficou perfeito. Vlw!
Agora só falta redimensionar uma figura que já está no formado JPG e depois de redimensionada ela continuar no formato JPG.
Vi que o programa que o MARCELOHF passou, faz isso. Mas ainda não consegui entender como...
Pelo que entendi, vc só deseja redimencionar uma foto .jpg? é isso?
Então, abra uma imagem dentro de um Picture box e coloque este código (feito pelo Matioli).
E para chamar a foto, faça assim:
Talvez isso ajude.
Então, abra uma imagem dentro de um Picture box e coloque este código (feito pelo Matioli).
Public Sub Redimenciona(img As Image, Optional largura As Double, Optional altura As Double)
Dim vFator As Double
img.Stretch = False
vFator = largura / img.Width
img.Stretch = True
If img.Height * vFator > altura Then
img.Stretch = False
vFator = altura / img.Height
img.Stretch = True
ElseIf img.Width * vFator > largura Then
img.Stretch = False
vFator = largura / img.Width
img.Stretch = True
End If
img.Height = img.Height * vFator
img.Width = img.Width * vFator
img.Left = (largura / 2) - (img.Width / 2)
img.Top = (altura / 2) - (img.Height / 2)
End Sub
E para chamar a foto, faça assim:
Image1.Stretch = True
Set Image1.Picture = LoadPicture(C:\sua pasta\sua foto.jpg)
Redimenciona Image1, Picture1.Width, Picture1.Height
Talvez isso ajude.
Tópico encerrado , respostas não são mais permitidas