
Artículo original: VFP -X GDI+ code samples for "Recreating One Note Tabs in VFP9" from Bernard
http://weblogs.foxite.com/cesarchalom/archive/2006/08/13/2199.aspx [3]
Autor: Cesar Chalom (http://weblogs.foxite.com/cesarchalom [4])
Traducido por: Ana María Bisbé York (amby@telefonica.net [5])
Para: PortalFox (http://www.portalfox.com [6])
Ahora Bernard Bout me debe dos entradas de blog :-))
Debajo hay algunas imágenes de Bernard Bout, que muestran algunos formularios muy interesantes que ha creado. Para facilitarle el trabajo, mostraré cómo crear la imagen al vuelo que utiliza para crear estos ejemplos, utilizando las nuevas clases desde el proyecto GDIPlus-X, disponible desde CodePlex [7].
Se puede obtener más información en el Blog de Bernard: "Recreating One Note Tabs in VFP9 [8]"


EJEMPLO 1: ON_BIGTAB

La imagen agrandada 8 veces
![]()
Imagen original en tamaño original
** Crea una imagen ON_BIGTAB.PNG para ser utilizada en el ejemplo
** "One Note Tabs" de Bernard Bout
** - una imagen 112x20 píxeles, con un polígono irregular con un borde azul
** y relleno con un color naranja degradado
_SCREEN.AddProperty("System", NEWOBJECT("xfcSystem", LOCFILE("system.vcx","vcx")))
* Define los colores que serán utilizados
LOCAL lnRGBStartGradClr, lnRGBEndGradClr
lnRGBStartGradClr = RGB(253,233,218) && naranja claro
lnRGBEndGradClr = RGB(247,182,131) && naranja
lnRGBBorderClr = RGB(59,97,156) && azul oscuro
WITH _SCREEN.System.Drawing
LOCAL loBitmap AS xfcBitmap
LOCAL loGfx AS xfcGraphics
LOCAL loGradBrush AS xfcLinearGradientBrush
LOCAL loPen AS xfcPen
LOCAL loRect AS xfcRectangle
* Crea un bitmap nuevo de 112x20 en el formato predeterminado PixelFormat - 32bppARGB
loBitmap = .Bitmap.New(112,20)
* Crea un objeto Graphics que podrá dibujar en el bitmap
loGfx = .Graphics.FromImage(loBitmap)
loGfx.Clear(.Color.White) && blanco
* Crea un objeto Rectangle para la brocha de color degradado lineal
loRect = .Rectangle.New(0,0,112,19) && Tamaño del bitmap
* Crea una brocha de color degradado lineal - LinearGradientBrush
loGradBrush = .Drawing2D.LinearGradientBrush.New(loRect,;
.Color.FromRgb(lnRGBStartGradClr), .Color.FromRgb(lnRGBEndGradClr),1)
DIMENSION laPoints(6)
laPoints(1) = .Point.New(0,20)
laPoints(2) = .Point.New(17,4)
laPoints(3) = .Point.New(21,2)
laPoints(4) = .Point.New(109,2)
laPoints(5) = .Point.New(110,4)
laPoints(6) = .Point.New(110,20)
* Llena el polígono con la brocha Gradient Brush
loGfx.FillPolygon(loGradBrush, @laPoints)
* Crea un trazo, objeto Pen de color azul para dibujar el borde
loPen = .Pen.New(.Color.FromRGB(lnRGBBorderClr),1)
* Dibuja el borde azul
laPoints(1) = .Point.New(0,19)
laPoints(2) = .Point.New(17,2)
laPoints(3) = .Point.New(22,0)
laPoints(4) = .Point.New(109,0)
laPoints(5) = .Point.New(111,2)
laPoints(6) = .Point.New(111,18)
loGfx.DrawLines(loPen, @laPoints)
* Dibuja los pixels inferior-derechos
loBitmap.SetPixel(111,19,.Color.FromRGB(lnRGBEndGradClr))
loBitmap.SetPixel(110,19,.Color.FromRGB(lnRGBEndGradClr))
* Guarda la imagen
loBitmap.Save("c:\ON_BigTab.png", .Imaging.ImageFormat.Png)
ENDWITH
EJEMPLO 2: ON_SMALLTAB

Imagen original agrandada 8 veces.
![]()
Imagen original en tamaño original.
** Crea una imagen ON_SMALLTAB.PNG para ser utilizada en el ejemplo
** "One Note Tabs" de Bernard Bout
** - una imagen 16x8 píxeles, con un polígono irregular con un borde azul
** y relleno con un color naranja degradado
_SCREEN.AddProperty("System", NEWOBJECT("xfcSystem", LOCFILE("system.vcx","vcx")))
* Define los colores que serán utilizados
LOCAL lnRGBStartGradClr, lnRGBEndGradClr
lnRGBStartGradClr = RGB(255,232,197) && naranja claro
lnRGBEndGradClr = RGB(255,179,15) && naranja
lnRGBBorderClr = RGB(26,57,86) && azul oscuro
WITH _SCREEN.System.Drawing
LOCAL loBitmap AS xfcBitmap
LOCAL loGfx AS xfcGraphics
LOCAL loGradBrush AS xfcLinearGradientBrush
LOCAL loPen AS xfcPen
LOCAL loRect AS xfcRectangle
* Crea un bitmap nuevo de 16x8 en el formato predeterminado PixelFormat - 32bppARGB
loBitmap = .Bitmap.New(16,8)
* Crea un objeto Graphics que podrá dibujar en el bitmap
loGfx = .Graphics.FromImage(loBitmap)
loGfx.Clear(.Color.FromRgb(RGB(255,255,255))) && white
* Crea un objeto Rectangle para la brocha de color degradado lineal
loRect = .Rectangle.New(0,0,16,8) && Size of bitmap
* Crea una brocha de color degradado lineal - LinearGradientBrush
loGradBrush = .Drawing2D.LinearGradientBrush.New(loRect,;
.Color.FromRgb(lnRGBStartGradClr), .Color.FromRgb(lnRGBEndGradClr),1)
DIMENSION laPoints(5)
laPoints(1) = .Point.New(0,7)
laPoints(2) = .Point.New(0,2)
laPoints(3) = .Point.New(2,0)
laPoints(4) = .Point.New(8,0)
laPoints(5) = .Point.New(15,7)
* Llena el polígono con la brocha Gradient Brush
loGfx.FillPolygon(loGradBrush, @laPoints)
* Create a blue Pen object to draw border
loPen = .Pen.New(.Color.FromRGB(lnRGBBorderClr),1)
* Dibuja el polígono
loGfx.DrawPolygon(loPen, @laPoints)
* Guarda la imagen
loBitmap.Save("c:\ON_SmallTab.png", .Imaging.ImageFormat.Png)
ENDWITH
SAMPLE 3: ON_SMALLBUTTON

Imagen original agrandada 8 veces

Imagen resultante agrandada 8 veces
![]()
Imagen original en tamaño original
![]()
Imagen resultante en tamaño original
** Carga una imagen y dibuja un rectángulo personalizado utilizando un
** LinearGradientBrush; Crea un archivo image ON_SMALLBUTTON.PNG
** para ser utilizado en el ejemplo "One Note Tabs" de Bernard Bout
** - una imagen de112x20 píxeles, con un polígono irregular,
** con un borde azul y relleno con un color naranja degradado
_SCREEN.AddProperty("System", NEWOBJECT("xfcSystem", LOCFILE("system.vcx","vcx")))
* Define los colores a emplear
LOCAL lnRGBStartGradClr, lnRGBEndGradClr
lnRGBStartGradClr = RGB(253,232,197) && naranja claro
lnRGBEndGradClr = RGB(255,179,15) && naranja
WITH _SCREEN.System.Drawing
LOCAL loBitmap AS xfcBitmap
LOCAL loGfx AS xfcGraphics
LOCAL loGradBrush AS xfcLinearGradientBrush
LOCAL loRect AS xfcRectangle
* Carga el objeto Image
loBitmap = .Image.FromFile(GETPICT())
* Crea un objeto Graphics que podrá dibujar en el bitmap
loGfx = .Graphics.FromImage(loBitmap)
* Crea un objeto Rectangle para la brocha de color degradado lineal
loRect = .Rectangle.New(0,0,12,18)
* Crea una brocha de color degradado lineal - LinearGradientBrush
loGradBrush = .Drawing2D.LinearGradientBrush.New(loRect,;
.Color.FromRgb(lnRGBStartGradClr), .Color.FromRgb(lnRGBEndGradClr),1)
* Llena el polígono con la brocha Gradient Brush
loGfx.FillRectangle(loGradBrush, 3, 1, 12, 17)
* Guarda la imagen
loBitmap.Save("c:\ON_SmallButton.png", .Imaging.ImageFormat.Png)
ENDWITH
Nuevamente, ¡ esperemos por las futuras apariciones de Bernard !
| Ejemplos de código en VFP -X GDI+ (Cesar Chalom) Traducción | Entrar/Crear una cuenta [9] | 1 Comentario | |
|
| |
| Los comentarios son propiedad de sus respectivos autores. No somos responsables de su contenido. |
Re: Ejemplos de código en VFP -X GDI+ (Cesar Chalom) Traducciónpor amby en 23 Oct, 2006 - 05:12 (Información del usuario [10] | Enviar un mensaje [11] http://www.amby.net [12]) |
|
Hola Este artículo se basa en un código escrito por Bernard Bouth y que se puede leer en http://weblogs.foxite.com/bernardbout. Desde PortalFox, nos hemos puesto en contacto con Bernard y nos ha autorizado a publicar las traducciones de su blog. Saludos, Ana www.amby.net |