DIMESOES DE UMA IMAGEM.

USUARIO.EXCLUIDOS 20/08/2007 09:22:30
#231617
Gostaria de saber como obter as dimenções X e Y de uma imagem TIFF ou JPG que está salva no HD.
Alguem pode me ajudar?
SERGIO.CARDOSO 20/08/2007 14:14:27
#231660
Fiz um teste. Coloquei um OLE1 no form e setei a propriedade SizeMode dele como 2 - AutoSize e ele me mostra as dimensoes da figura. Acho que eh um bom comeco. Inte ...
USUARIO.EXCLUIDOS 20/08/2007 15:32:20
#231683
Resposta escolhida
Veja esta função:

Public Function GetDimensoes(ByVal CaminhoImagem As String, ByRef Largura As Long, ByRef Altura As Long) As Boolean
On Error Resume Next

Dim Imagem As StdPicture
Imagem = LoadPicture(CaminhoImagem)

Largura = Imagem.Width
Altura = Imagem.Height

GetDimensoes = Err.Number = 0
End Function



Se vc passar variáveis nos parâmetros largura e Altura, ele alimentará suas variáveis com os respectivos valores.

A função retornar True se leu a imagem normalmente, ou false se deu algum erro.
USUARIO.EXCLUIDOS 20/08/2007 17:14:19
#231704
Olá MARCELOHF, estou tendo problemas para utilizar a função.
estou chamando ela da seguinte forma.
Em um botão

CaminhoImagem = "c:\Teste.bmp"
Label1= Largura
Label2= Altura

Pode me ajudar?
USUARIO.EXCLUIDOS 20/08/2007 17:17:21
#231707
Tipo assim amigo...

Dim Altura as Long
Dim Largura as Long
CaminhoImagem = "c:\Teste.bmp"

If GetDimensoes(CaminhoImagem, Largura, Altura) then
Label1= Largura
Label2= Altura
end if


Vc pode colocar a função em um módulo ou dentro do seu form mesmo.


Abs!
USUARIO.EXCLUIDOS 21/08/2007 09:00:04
#231778
MARCELOHF, estou utilizando o codigo da seguinte forma e está Compile error: Invalid use of property
na linha: Imagem = LoadPicture(CaminhoImagem) aparece fica com a variavel Imagem selecionda

Public Function GetDimensoes(ByVal CaminhoImagem As String, ByRef Largura As Long, ByRef Altura As Long) As Boolean
On Error Resume Next

Dim Imagem As StdPicture
Imagem = LoadPicture(CaminhoImagem)

Largura = Imagem.Width
Altura = Imagem.Height

GetDimensoes = Err.Number = 0
End Function


Private Sub Command1_Click()
Dim Altura As Long
Dim Largura As Long
CaminhoImagem = "c:\Teste.jpg"

If GetDimensoes(CaminhoImagem, Largura, Altura) Then
Label1 = Largura
Label2 = Altura
End If
End Sub

USUARIO.EXCLUIDOS 21/08/2007 09:24:54
#231783
Opa... é isso que dá postar sem testar né! hehe

Está aí cara... faltou o Set... agora funcionando.

Public Function GetDimensoes(ByVal CaminhoImagem As String, ByRef Largura As Long, ByRef Altura As Long) As Boolean
On Error Resume Next

Dim Imagem As StdPicture
Set Imagem = LoadPicture(CaminhoImagem)

Largura = Imagem.Width
Altura = Imagem.Height

GetDimensoes = Err.Number = 0
End Function

USUARIO.EXCLUIDOS 21/08/2007 09:37:38
#231785
Agora funciono.
Mas existe outro problema, tem o tamanho de 1378 x 601 Pixels e no VB ele exibe o tamanho de 36460 x 15901 ? Poderia me ajudar aconverter isto?
USUARIO.EXCLUIDOS 21/08/2007 09:52:53
#231791
Utilize esta função abaixo, ela já retorna os valores convertidos


Public Function GetDimensoes(ByVal CaminhoImagem As String, ByRef Largura As Long, ByRef Altura As Long) As Boolean
On Error Resume Next

Private Const Fator = 26.4586357039187

Dim Imagem As StdPicture
Set Imagem = LoadPicture(CaminhoImagem)

Largura = Imagem.Width / Fator
Altura = Imagem.Height / Fator

GetDimensoes = Err.Number = 0
End Function
USUARIO.EXCLUIDOS 21/08/2007 10:01:50
#231794
Muito obrigado MARCELOHF, VLW pela força.
Agora só pra evitar um erro e para aquele que queiram utilizar o codigo, utilize o codigo desta forma com o Private Const fora da função para não dar erro.

Private Const Fator = 26.4586357039187

Public Function GetDimensoes(ByVal CaminhoImagem As String, ByRef Largura As Long, ByRef Altura As Long) As Boolean
On Error Resume Next

Dim Imagem As StdPicture
Set Imagem = LoadPicture(CaminhoImagem)

Largura = Imagem.Width / Fator
Altura = Imagem.Height / Fator

GetDimensoes = Err.Number = 0
End Function



Muito obrigado MARCELOHF
Tópico encerrado , respostas não são mais permitidas