27 de junio de 2007

Imágenes con aspecto borroso (blur) con GdiPlusX

Artículo original: Blur Images with GdiPlusX
http://weblogs.foxite.com/vfpimaging/archive/2007/06/22/4153.aspx
Autor: Cesar Ch.
Traducido por: Luis María Guayán 


Lograr un aspecto borroso en imágenes es también muy fácil.

La técnica más simple es redimensionar la imagen original a un tamaño MUCHO MÁS PEQUEÑO, y después volver a redimensionarla al tamaño original.

La razón es muy obvia, cuando aumentamos las dimensiones de cualquier imagen, tenemos una pérdida de calidad, causando el efecto de aspecto borroso.

IMPORTANTE
Requiere VFP9 y GdiPlusX para funcionar. 

¡Por favor asegúrese de tener la última versión!
http://www.codeplex.com/VFPX/Wiki/View.aspx?title=GDIPlusX&referringTitle=Home

* Iniciamos GdiPlusX
_SCREEN.AddProperty("System", NEWOBJECT("xfcSystem", LOCFILE("system.vcx")))

WITH _SCREEN.System.Drawing

  * Cargo la imagen original
  LOCAL loBmp as xfcBitmap
  loBmp = .Bitmap.New(GETPICT())

  * Tomo un rectangulo con las dimensiones del bitmap 
  LOCAL loRect as xfcRectangle 
  loRect = loBmp.GetBounds()

  * Inicializo el objeto gráfico para poder dibujar en la imagen 
  LOCAL loGfx AS xfcGraphics
  loGfx = .Graphics.FromImage(loBmp)
  loGfx.Clear(.Color.White)

  LOCAL lnReduceFactor as Integer 
  lnReduceFactor = 10 && la imagen será reducida en 10 veces

  * Tomo una miniatura con el tamaño deseado 
  LOCAL loDestBmp as xfcImage
  loDestBmp = loBmp.GetThumbnailImage(loBmp.Width / lnReduceFactor, loBmp.Height / lnReduceFactor)
  
  * Dibujo la imagen, mostrando la intensidad del canal CYAN. 
  loGfx.DrawImage(loDestBmp, loRect)
  loBmp.Save("c:\blurred.jpg", .Imaging.ImageFormat.Jpeg) 

  RUN /N Explorer.exe c:\Blurred.Jpg

ENDWITH
RETURN

Imagen Original


Factor = 4


Factor = 8


Factor = 12


Factor = 20


Imagen Original


Factor = 4


Factor = 8


Factor = 12


Factor = 20

No hay comentarios. :

Publicar un comentario