Tamaño deimagenes con visual foxpro
Como poder redimensionar una imagen con GDI+en VFP.
Se creara una función llamadae Redimensionar(),
copiar el código como parámetros se pasaran la ruta del archivo y el tamaño al cual se redimensionara
PARAMETERS m.cArchivoRedimensionar , m.nTamano
LOCAL m.cNombreTemporal
DO (LOCFILE(“system.app”))
WITH _SCREEN.System.Drawing
* Variables para almacenar el nuevo tamaño de la imagen
LOCAL lnWidth, lnHeight
STORE m.nTamano TO lnWidth, lnHeight
* Cargar la imagen original
LOCAL loSrcImage as xfcBitmap
loSrcImage = .Bitmap.New(m.cArchivoRedimensionar)
m.cNombreTemporal = m.cRutaTemporal + JUSTSTEM(m.cArchivoRedimensionar) + ‘.bmp’
* Crea una nueva imagen con el tamaño deseado
LOCAL loResized as xfcBitmap
loResized = .Bitmap.New(lnWidth, lnHeight,.Imaging.PixelFormat.Format32bppARGB)
* Fija la resolución de la imagen para que sea la misma que la original
loResized.SetResolution(loSrcImage.HorizontalResolution, loSrcImage.VerticalResolution)
* Crea un objeto Graphics para poder obtener los derechos de dibujar sobre el
LOCAL loGfx as xfcGraphics
loGfx = .Graphics.FromImage(loResized)
* Establece algunas propiedades para asegurarse de tener la mejor calidad de la imagen
loGfx.SmoothingMode = .Drawing2D.SmoothingMode.HighQuality
loGfx.InterpolationMode = .Drawing2D.InterpolationMode.HighQualityBicubic
* Dibuja la imagen original en la nueva imagen con las dimensiones deseadas
loGfx.DrawImage(loSrcImage, 0, 0, lnWIdth, lnHeight)
* Guarda la imagen redimensionada como Png
loResized.Save(m.cNombreTemporal, .Imaging.ImageFormat.bmp)
Return m.cNombreTemporal
ENDWITH