29 de septiembre de 2006

Nuevas clases GDI+ en VFP-X

Artículo original: New VFP- X GDI+ classes
http://weblogs.foxite.com/vfpimaging/archive/2006/08/10/2194.aspx
Autor: Cesar Ch.
Traducido por: Ana María Bisbé York


En las últimas dos semanas, he estado realizado pruebas extensas y creando algunos ejemplos utilizando la nueva biblioteca VFP-X GDIPlusX. Debo decir que la clase está tremenda. Esta biblioteca está realmente haciendo mi vida con GDI+ mucho más sencilla.

Cuanto más la utilizo, más me gusta. Me estoy divirtiendo mucho.

Como dijo Craig Boyd en una de sus entradas de blog: (http://www.sweetpotatosoftware.com/SPSBlog/PermaLink,guid,c5ff0b43-a24d-43a6-b290-94fe9cfd4492.aspx) "La biblioteca GDIPlusX es una reproducción en código Visual FoxPro puro del espacio de nombre Drawing en .NET. Hemos escrito más de 40 000 líneas de código VFP y la librería consiste en más de 80 clases, por ahora: cerca del 95% está completo. Es seguro decir que no hay otra biblioteca en el planeta que brinde a los desarrolladores VFP la funcionalidad y el poder que esta brinda cuando se trabaja con GDI+." - Es totalmente cierto.

Si está planificando comenzar un nuevo proyecto y necesitará utilizar GDI+, o está interesado en ayudar en el proyecto, escribiendo código, haciendo pruebas, sugerencias, recomiendo fuertemente entrar en http://www.codeplex.com/Wiki/View.aspx?ProjectName=VFPX, seleccionar la ficha "Releases" http://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=VFPX, y descargar la versión más estable actualmente disponible.

Comience ejecutando el archivo DEMO.PRG en la carpeta Samples, y va a tener una mejor idea del poder de la clase.

Bo ha sugerido que desde ahora debemos mantener nuestra comunicación solamente vía CodePlex, utilizando las secciones Discussions y Issue Tracker. De esta forma, como dijo Bo "otras personas pueden contribuir y estar envueltos si ellos ven que aquí hay alguna actividad y que es muy sencillo para ellos colaborar también."

A propósito, ¡ El proyecto VFP-X ahora tiene también un nuevo logo !

vfpxbanner_small.gif
A partir de ahora, emplearé este espacio para mostrar algunos ejemplos de utilización de estas clases. Puede emplear el espacio de comentarios de este blog para hacer este tipo de peticiones.

EJEMPLOS DE CÓDIGO

Mi primer ejemplo viene de ayudar a Bernard Bout, a crear una imagen que será utilizada en su ejemplo "blueglass". Puede obtener más datos de esta información en: http://weblogs.foxite.com/bernardbout/archive/2006/06/15/1838.aspx

Crear una imagen de 2x2 píxeles, con un fondo azul y un píxel magenta en (0,0)

He aquí el código:
** Crea una imagen para ser utilizada en el ejemplo "blueglass" 
** por Bernard Bout
** imagen 2x2 píxeles, con fondo azul y un píxel magenta en (0,0)

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

* Define los colores a ser utilizados
lnRGBPointClr = RGB(0,0,255) && Azul
lnRGBBackgClr = RGB(255,0,255) && Magenta
WITH _SCREEN.System.Drawing
LOCAL loBitmap AS xfcBitmap
LOCAL loColor AS xfcColor
LOCAL loGfx AS xfcGraphics
* Crea un nuevo bitmap  2x2 en el predeterminado PixelFormat - 32bppARGB
loBitmap = .Bitmap.New(2,2)
* Crea un objeto Graphics para que sea capaz de utilizar la función Clear,
* que va a llenar todo el bitmap con el color deseado.
* Para este caso esto no es fundamental, porque el bitmap es
* pequeño, entonces podemos llamar "SetPixel" 4 veces para cubrir el bitmap.
loGfx = .Graphics.FromImage(loBitmap)
loGfx.Clear(.Color.FromRgb(lnRGBBackGClr))
* Dibuja el pixel
loBitmap.SetPixel(0,0, .Color.FromRgb(lnRGBPointClr))
* Guarda una imagen  PNG
loBitmap.Save("c:\BlueGlass.png", .Imaging.ImageFormat.Png)
ENDWITH



¡No puedo esperar por el siguiente entrada de blog de Bernard utilizándola!

No hay comentarios. :

Publicar un comentario