Ajustar imagen

  1. last week

    javier l

    Mar 20 Argentina

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

  2. Julen I

    Mar 20 Europe

    Hola Javier,

    Mira el método DrawPicture de la clase Graphics (el parámetro g en el evento Paint de un Canvas es de tipo Graphics):
    http://docs.xojo.com/index.php/Graphics.DrawPicture

    Si tienes dudas no dudes en preguntar,

    Julen

  3. 6 days ago

    Ramon S

    Mar 21 Pre-Release Testers, Xojo Pro UPC, Europe (Barcelona, Spain)

    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.

  4. Javier M

    Mar 21 Pre-Release Testers, Xojo Pro Madrid, Spain

    Hola @javier l

    Puedes utilizar un Canvas tal y como dice @Julen I 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!

  5. javier l

    Mar 21 Argentina

    Gracias, en un rato estoy probando

  6. 5 days ago

    Julen I

    Mar 22 Europe

    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

  7. javier l

    Mar 22 Argentina

    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 tamaño

  8. javier l

    Mar 22 Argentina

    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

  9. Hola Javier

    @javier l 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

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

    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

    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

  10. javier l

    Mar 22 Argentina

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

or Sign Up to reply!