Ajustar imagen

Hola tengo una imagen la cual no se que tamao tiene, pero necesito que al cargarse se ajuste al control, modificandose el tamao.
He probado con picture (imagewell) pero no logro el resultado.
Me podrian ayudar con este tema?
Desde ya Gracias

Hola Javier,

Mira el mtodo DrawPicture de la clase Graphics (el parmetro g en el evento Paint de un Canvas es de tipo Graphics):
http://documentation.xojo.com/index.php/Graphics.DrawPicture

Si tienes dudas no dudes en preguntar,

Julen

Javier,
Solamente un comentario. En la última versión ImageWell tenía un problema al poner en él una imagen. Pero solo en fase IDE. Luego, al ejecutar el programa, funciona.
No sé si esto puede aplicarse a tu caso. Pero te lo comento por si acaso.

Hola @javier ledantes

Puedes utilizar un Canvas tal y como dice @Julen Ibarretxe Uriguen Puedes encontrar un ejemplo de como ajustar la imagen en este tutorial en vídeo.

Javier Rodríguez
Evangelista Xojo en Español, Desarrollador, Consultor y Formador Xojo
Autor del libro “Programación Multiplataforma Xojo
Autor del plug-in GuancheMOS para Xojo
Snippery para OS X: editor y gestor de fragmentos… ¡y más!

Gracias, en un rato estoy probando

Javier,

¿lo has conseguido? Tu respuesta en otra conversación parece indicar que no.

Si no lo has conseguido, ¿al dimensionar la imagen para ajustarse al control, tiene que mantener su forma original o tiene que ajustarse tanto en altura como anchura?

Julen

Hola Julien.
Estoy usando tu recomendacion anterior y funciona bien.
O sea me funciona con una imagen en especial, ahora cuando uso otra imagen que quizas tenga unas dimensiones en alto y ancho mayor o menor que la anterior ya no funciona bin, creo me falta algo que la ajuste completamente al cuadro canvas establecido, sea cual sea la imagen independientemente de su tamao

Hola Julen, Javier y Ramon.
He conseguido realizar el resixe de la imagen cualquiera sea esta.
Este es el codigo que utilize finalmente:

dim f as FolderItem
dim p as Picture

dni=trim(textfield1.text)+".jpg" 'Esta seria la imagen
f = getfolderitem(dni)
p = f.OpenAsPicture
g.DrawPicture(P, 0,0, g.Width, g.Height, 0,0,p.Width, P. Height) 'Este seria el objeto canvas que toma la imagen

p —> es la imagen original
g —> es la imagen convertida en el canvas

Gracias a todos por la ayuda

Hola Javier[quote=322103:@javier ledantes]O sea me funciona con una imagen en especial, ahora cuando uso otra imagen que quizas tenga unas dimensiones en alto y ancho mayor o menor que la anterior ya no funciona bin, creo me falta algo que la ajuste completamente al cuadro canvas establecido, sea cual sea la imagen independientemente de su tamaño[/quote]

Si, le falta es “cambiar el tamaño manteniendo la relación aspecto”, yo hago eso con una funcion:

[code]Function PictureScale(p as Picture, maxWidth as Integer, maxHeight as Integer) As Picture
If maxWidth< 1 Then maxWidth= 1
If maxWidth> 32767 Then maxWidth= 32767
If maxHeight< 1 Then maxHeight= 1
If maxHeight> 32767 Then maxHeight= 32767

’ Calculate the scale ratio
Dim ratio As Double = Min(maxHeight/p.Height, maxWidth/p.Width)
’ Create a new picture to return
Dim newPic As New Picture(p.Width* ratio, p.Height* ratio, 32)
’ Draw picture in the new size
newPic.graphics.DrawPicture(p, 0, 0, newPic.Width, newPic.Height, 0, 0, p.Width, p.Height)

Return newPic
End Function
[/code]

se utiliza enviando como parámetro el objeto picture y las medidas ancho y alto en su caso las medidas del control o graphics.width/height

Bernardo, la probe y funciona de primera, muchas gracias, ah otra cosa, excelente tu db-report.