Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: leo17 en 19 Septiembre 2008, 23:01 pm



Título: Redimensionar imagen????
Publicado por: leo17 en 19 Septiembre 2008, 23:01 pm
Hola q tal amigos de este foro, bueno tengo un pequeño problema con el manejo de imagenes en vb, lo que quiero hacer es que mediante un picture box cargar una imagen pero es muy grande asi que quisiera redimensionarla para poder enviarla por correo.


Título: Re: Redimensionar imagen????
Publicado por: BlackZeroX en 20 Septiembre 2008, 02:12 am
Aca esta el codigo espero y te agrade

Código
  1. Dim ImagenFoto As IPictureDisp
  2. Public Function CargarRedimencionarIMG(sRuta As String, _
  3.                        PictureFix As PictureBox, _
  4.                        Optional ByVal Pic_Ancho As Double, _
  5.                        Optional ByVal Pic_Alto As Double, _
  6.                        Optional ByVal X As Integer = 0, _
  7.                        Optional ByVal Y As Integer = 0, _
  8.                        Optional ByVal X2 = 0, _
  9.                        Optional ByVal Y2 = 0, _
  10.                        Optional ByVal Ancho2, _
  11.                        Optional ByVal Alto2, _
  12.                        Optional Opcional) As Long
  13.  
  14.    On Error GoTo Nel:
  15.  
  16.    Dim Ancho As Single, Alto As Single, Porcentaje As Single
  17.  
  18.    Pic_Ancho = IIf(Pic_Ancho <= 0, PictureFix.Width, Pic_Ancho)
  19.    Pic_Alto = IIf(Pic_Alto <= 0, PictureFix.Height, Pic_Alto)
  20.  
  21.    PictureFix.Width = Val(Pic_Ancho): PictureFix.Height = Val(Pic_Alto)
  22.    PictureFix.Cls
  23.    Set ImagenFoto = LoadPicture(sRuta)
  24.    Ancho = ImagenFoto.Width
  25.    Alto = ImagenFoto.Height
  26.    If Ancho < PictureFix.Width And Alto < PictureFix.Height Then
  27.        Porcentaje = 100
  28.        CargarRedimencionarIMG = CentrarPicture(PictureFix, Ancho, Alto, X, Y, Porcentaje, X2, Y2, Ancho2, Alto2, Opcional)
  29.        Exit Function
  30.    End If
  31.    If Ancho > PictureFix.Width Or Alto > PictureFix.Height Then
  32.        If Ancho > Alto Then
  33.            Porcentaje = (PictureFix.Width * 100) / Ancho
  34.        Else
  35.            Porcentaje = (PictureFix.Height * 100) / Alto
  36.        End If
  37.        CargarRedimencionarIMG = CentrarPicture(PictureFix, Ancho, Alto, X, Y, Porcentaje, X2, Y2, Ancho2, Alto2, Opcional)
  38.        Exit Function
  39.    ElseIf Ancho <= PictureFix.Width Or Alto <= PictureFix.Height Then
  40.        If Ancho > Alto Then
  41.            Porcentaje = (PictureFix.Width * 100) / Ancho
  42.        Else
  43.            Porcentaje = (PictureFix.Width * 100) / Alto
  44.        End If
  45.        CargarRedimencionarIMG = CentrarPicture(PictureFix, Ancho, Alto, X, Y, Porcentaje, X2, Y2, Ancho2, Alto2, Opcional)
  46.    End If
  47.    Exit Function
  48. Nel:
  49.    Cargar = 0
  50.    Err.Clear
  51. End Function
  52. Private Function CentrarPicture(PictureFix As PictureBox, _
  53.                                Optional ByVal Ancho As Double, _
  54.                                Optional ByVal Alto As Double, _
  55.                                Optional ByVal X As Integer = 0, _
  56.                                Optional ByVal Y As Integer = 0, _
  57.                                Optional Porcentaje As Single = 100, _
  58.                                Optional ByVal X2 As Integer = 0, _
  59.                                Optional ByVal Y2 As Integer = 0, _
  60.                                Optional ByVal Ancho2, _
  61.                                Optional ByVal Alto2, _
  62.                                Optional Opcional) As Long
  63.    On Error GoTo Nel
  64.    Ancho = (Ancho * Porcentaje) / 100
  65.    Alto = (Alto * Porcentaje) / 100
  66.    PictureFix.Width = Ancho
  67.    PictureFix.Height = Alto
  68.    PictureFix.PaintPicture ImagenFoto, X, Y, Ancho, Alto, X2, Y2, Ancho2, Alto2, Opcional
  69.    CentrarPicture = 1
  70.    Exit Function
  71. Nel:
  72.    CentrarPicture = 0
  73.    Err.Clear
  74. End Function
  75.  


Título: Re: Redimensionar imagen????
Publicado por: seba123neo en 20 Septiembre 2008, 04:51 am
Hola,yo creo que con un PaintPicture te alcanza...

saludos.


Título: Re: Redimensionar imagen????
Publicado por: BlackZeroX en 20 Septiembre 2008, 05:40 am
Hola,yo creo que con un PaintPicture te alcanza...

saludos.

lo mismo digo, aun que la funcion que puse detecta escala la imagen a el picture y lo ajusta a este sin importar el tamaño de la imagen a cargar y no distorciona la imagen en cuestion de anchura y altura je (probarlo para verlo mejor)

Código
  1. r=cargarredimencionarimg("c:\img.jpg",picture1)



Título: Re: Redimensionar imagen????
Publicado por: leo17 en 20 Septiembre 2008, 20:47 pm
ok gracias, lo probare.