Como maximizar uma imagem proporcionalmente

Moderador: Leandro Esteves

Regras do fórum
=============

Antes de postar sua dúvida, por favor leia as regras de utilização do fórum.
jwarpe
Mensagens: 38
Registrado em: 12 Abr 2013, 12:02

Como maximizar uma imagem proporcionalmente

Mensagem por jwarpe » 17 Dez 2013, 00:39

Colegas,
Aquele botão que aparece no campo multimídia, tem uma opção maximizar.
Funciona, maximiza, só que o pessoal da SSI TECNOLOGIA esqueceu de um pequeno detalhe: De nada adianta maximizar uma imagem e ela ficar distorcida. Até já postei naquelas idéias uma sugestão que eu uso, mas, ao que parece, não vale a pena. A alteração no fonte chega a ser ridícula. Se eu consegui por que o pessoal da Father não iria ?

De toda a maneira, vou postar aqui o código e deixar a dica:

Você quer por a opção de maximizar uma imagem ? quer ? e quer que a imagem seja maximizada proporcionalmente ? Sem deformações na imagem ??

Então faça o seguinte:

No projeto, dentro do VB, vá em USER CONTROLS, do lado direito, procure o controle GCpMM, procure a função MaximizaFigura e substituia a que tem lá por essa:

Sub MaximizaFigura()
Dim j As Single
gMaximizado = True
gTopAnt = UserControl.Extender.Top
gLeftAnt = UserControl.Extender.Left
gWidthAnt = UserControl.Width
gHeightAnt = UserControl.Height
UserControl.Extender.Top = 0
UserControl.Extender.Left = 0
On Error Resume Next
j = UserControl.Extender.Container.ScaleWidth
If Err Then
If ((UserControl.Extender.Container.Height / UserControl.Extender.Container.Width) > (UserControl.Extender.Picture.Height / UserControl.Extender.Picture.Width)) Then ' é larga
UserControl.Height = UserControl.Extender.Container.Width * (UserControl.Extender.Picture.Height / UserControl.Extender.Picture.Width)
UserControl.Width = UserControl.Extender.Container.Width
Else
UserControl.Width = UserControl.Extender.Container.Height / (UserControl.Extender.Picture.Height / UserControl.Extender.Picture.Width)
UserControl.Height = UserControl.Extender.Container.Height
End If
Else
UserControl.Width = j
UserControl.Height = UserControl.Extender.Container.ScaleHeight
End If
UserControl.Extender.ZOrder 0
UserControl_Resize
End Sub

-----------------------------------------------------

Depois de colar, salve o controle que está no projeto, no VB.
No projeto, dentro do FATHER, desmarque a opção de geração do Campo Multimidia (GCPMM.CTL)

Posso fazer isso ? Não vai alterar o projeto ?

A única coisa que altera no campo multimídia é que com as alterações na rotina, o programa maximiza a imagem de maneira proporcional, coisa que a FATHER, e a GAS não quiseram inserir no projeto.

Eu ainda não entendi para que serve maximizar uma imagem de maneira deformada, mas com certeza o pessoal da FATHER - GAS sabe para que serve.

Vai a Dica ! Bom Uso !

Boa sorte !
Jose Carlos Warpechowski - Skype: jzwarpe@yahoo.com.br ---- Note I5 - 6 - 750 W8---- Desk I7 3770 - PCI SSD 480 + SSD 128 + 4TB - W8
Gas desde 1996.
Agua Boa - MT

henrique
Mensagens: 70
Registrado em: 14 Abr 2013, 14:16

Re: Como maximizar uma imagem proporcionalmente

Mensagem por henrique » 17 Dez 2013, 09:56

bom dia jwarpe ,

Testei seu código e funcionou redondo...já vou utilizar !

Parabéns pela iniciativa e pela rotina !

Obrigado !

Abraços !

Luiz Alfredo
Mensagens: 280
Registrado em: 10 Set 2009, 13:57

Re: Como maximizar uma imagem proporcionalmente

Mensagem por Luiz Alfredo » 17 Dez 2013, 12:47

José Carlos, gostei da rotina.

Grato !

eduardo.dutra
Mensagens: 237
Registrado em: 12 Abr 2013, 10:20
Localização: Brasília-DF
Contato:

Re: Como maximizar uma imagem proporcionalmente

Mensagem por eduardo.dutra » 05 Set 2015, 05:16

José Carlos,
Ressuscitando seu tópico, percebi que a imagem é nivelada pela parte de baixo.
Ou seja, é posicionada pela parte de baixo e se não couber corta a parte de cima.
Tem como ser nivelado pela parte de cima? E no caso, cortar a parte de baixo?
Veja a figura.
Você não está autorizado a ver ou baixar esse anexo.
Eduardo Dutra - eduardo@visualpvc.com.br

Responder

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 3 visitantes