Marcelo
não registrado
|
|
ENUNCIADA !
|
|
|
Postada em 04/06/2011 09:38 hs
Gente,
Eu já pesquisei muito na internet uma solução para colocar uma imagem em uma Picturebox que preencha o tamanho total da picture sem deformar a imagem.
Sei que usando o controle IMAGE isso é possível. Acontece que tem que ser mesmo Picture devido aos recursos gráficos de efeitos que o controle IMAGE não oferece. Também não adianta simular o Strech pois um rosto em tela cheia ou uma foto retrato na picture em paisagem vai ficar deformada
Portanto! Não acredito que com todo o poder que tem uma Picture não seja possível colocar carregar uma Imagem na proporção exata do tamanho da picture. As vezes tela cheia ou outros tamanhos.
Alguém sabe de alguma solução?
|
|
|
|
Tales
não registrado
|
|
ENUNCIADA !
|
|
|
Postada em 04/06/2011 11:33 hs
Para mim tem que editar a foto e salvar do tamanho que quiser.Eu uso este artifício com um editor de imagem.Também uso o visualizador de imagem do Windows.
|
|
|
|
Postada em 05/06/2011 09:20 hs
Tales obrigado pelo retorno.
Mas isso não seria uma solução. Neste caso eu já uso o controle IMAGE que enquadra a imagem na Picture no final do processo sem precisar de editar a imagem.
O que me deixa intrigado é o fato de um PictureBox com tantos recursos gráficos não ter o principal que é exatamente carregar uma imagem e dimensiona-la dentro da porpoção da largura e altura da picture.
Mas eu preciso mesmo usar somente o controle PictureBox, a acredito que exista esta solução, porém ainda não descobri.
Pensei em carregar a imagem no contole Image já ajustado no mesmo tamanho e depois a Picture redesenha do controle IMAGE para o controle PictureBox, mas estou apanhando neste processo.
Alguém mais teria outra soluçao?
|
|
|
Treze
|
SÃO VICENTE SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 05/06/2011 12:40 hs
tente este código xará
Function RedimPicture(Pict As PictureBox, Caminho As String) 'criei uma picturebox temporaria Dim pic_temp As PictureBox Set pic_temp = Picture1 pic_temp.AutoRedraw = True pic_temp.Picture = LoadPicture(Caminho) pic_temp.PaintPicture pic_temp.Picture, 0, 0, Pict.Width, Pict.Height Pict.Picture = pic_temp.Image End Function
para usar
Private Sub Form_Load() RedimPicture Picture1, "C:suaimagem.jpg" End Sub
|
|
|
|
Postada em 06/06/2011 09:17 hs
Treze, valeu pela tentativa.
mas a sua função faz a mesma coisa que simular o Strech do IMAGE. A imagem fica esticada da mesma forma. se a picture tiver uma largura bem maior que a imagem original, ficará deformada.
Eu até consegui usando o controle IMAGE dentro da Picture, no entanto no final do processo da transição do slide eu limpo a Picture e mostro o controle IMAGE com a imagem enquadrada. Aconteçe nesse processo pisca ao limpar a Picture e mostrar a Imagem. Se a Picture já estivesse com o tamanho normal, isso não aconteceria, por isso preciso mesmno de enquadrar a imagem direto na picturebox sem distorção.
|
|
|
|
Postada em 06/06/2011 10:41 hs
Agora falta bem pouco, pois consegui enquadrar a picturebox usando mesmo o controle image. Mas a imagem fica no canto e no topo. Tentei centralizar a imagem pic1.PaintPicture pic1, (pic1.ScaleWidth - PicIMG.Width) / 2, (pic1.ScaleHeight - PicIMG.Height) / 2, PicIMG.Width, PicIMG.Height
Sendo a Pic1 a Picturebox e PicIMG a IMAGE
Fica centralizado no entanto mantem a imagem de fundo atrás da imagem centralizada.
Não estou ainda conseguindo limpar a imagem nas posição left = 0 e top = 0 e depois centralizar.
Alguém sabe de outro metódo para centralizar a imagem redesenhando a picture novamente limpando todo o contéudo?
|
|
|