Lo primero es colocar las declaracion en un modulo BAS, ejemplo module1.bas:
Código:
Public Const IMAGE_BITMAP = 0 Public Const LR_COPYRETURNORG = &H4 Public Const CF_BITMAP = 2 Public Declare Function SetClipboardData Lib "user32" (ByVal wFormat As Long, ByVal hMem As Long) As Long 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 Public Declare Function EmptyClipboard Lib "user32" () As Long Public Declare Function CloseClipboard Lib "user32" () As Long 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:
Hecho! redimensiona la imagen al tamaño de 640x480 (foto2.bmp), si requiere otro tamaño entonces modificalo!Dim hNew2 As Long Image1.Picture = LoadPicture("C:\Users\desarr\Desktop\foto.jpg") hNew2 = CopyImage(Image1.Picture, IMAGE_BITMAP, Val(640), Val(480), LR_COPYRETURNORG) OpenClipboard Me.hwnd EmptyClipboard SetClipboardData CF_BITMAP, hNew2 CloseClipboard Image1.Picture = Clipboard.GetData(2) SavePicture Image1.Picture, "C:\Users\desarr\Desktop\foto2.bmp"
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
Rodrigo Solorzano Pardo