Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/06/2008, 08:29
Avatar de totigo
totigo
 
Fecha de Ingreso: marzo-2007
Ubicación: America
Mensajes: 103
Antigüedad: 17 años, 2 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:
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:
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"
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
Rodrigo Solorzano Pardo

Última edición por totigo; 27/06/2008 a las 15:16