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 originalPublic 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 vb:
Ver originalDim 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"
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