Tema: FAQ's de VB6
Ver Mensaje Individual
  #183 (permalink)  
Antiguo 11/03/2009, 11:01
Avatar de totigo
totigo
 
Fecha de Ingreso: marzo-2007
Ubicación: America
Mensajes: 103
Antigüedad: 17 años, 9 meses
Puntos: 3
De acuerdo Modificar Tamaño de una Imagen VB 6.0

Hola, a continuacion quiero compartirles las instrucciones para redimensionar el tamaño de una imagen a 640x480, la cual se carga en un control image.

Lo primero es colocar las declaracion en un modulo BAS, ejemplo module1.bas:

Código vb:
Ver original
  1. Public Const IMAGE_BITMAP = 0
  2. Public Const LR_COPYRETURNORG = &H4
  3. Public Const CF_BITMAP = 2
  4. Public Declare Function SetClipboardData Lib "user32" (ByVal wFormat As Long, ByVal hMem As Long) As Long
  5. Public Declare Function CopyImage Lib "user32" (ByVal handle As Long, ByVal imageType As Long, ByVal newWidth As Long, ByVal newHeight As Long, ByVal lFlags As Long) As Long
  6. Public Declare Function EmptyClipboard Lib "user32" () As Long
  7. Public Declare Function CloseClipboard Lib "user32" () As Long
  8. Public Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long

Seguidamente viene la instruccion que hace el trabajo pesado y que colocamos por ejemplo en el evento click de un boton :

controles : Boton, Image Control

Código vb:
Ver original
  1. Dim hNew2 As Long
  2.  
  3. Image1.Picture = LoadPicture("C:\Users\desarr\Desktop\foto.jpg")
  4.  
  5. hNew2 = CopyImage(Image1.Picture, IMAGE_BITMAP, Val(640), Val(480), LR_COPYRETURNORG)
  6. OpenClipboard Me.hwnd
  7. EmptyClipboard
  8. SetClipboardData CF_BITMAP, hNew2
  9. CloseClipboard
  10.  
  11. Image1.Picture = Clipboard.GetData(2)
  12. SavePicture Image1.Picture, "C:\Users\desarr\Desktop\foto2.bmp"

Hecho! redimensiona la imagen al tamaño de 640x480 (foto2.bmp), si requiere otro tamaño entonces modificalo!

Espero sea de utilidad para muchos!

Nota : la funcion SavePicture solo genera BitMaps - BMPs, hay controles OCX - DLL para generar a otros formatos como el PicFormat32.OCX