Professional Documents
Culture Documents
________________________________________________________________________
Contenido
Introduccin
Captulo 1
GDI+: La nueva Generacin en Interfases grficas
1.1 Superficies de dibujo y sistema de Coordenadas en GDI+
1.1.1 Superficies de dibujo
1.1.2 Sistemas de Coordenadas
1.2 Estructuras Esenciales
1.2.1 Puntos bidimensionales
1.2.1.1 Constructores pblicos
1.2.1.2 Campos pblicos
1.2.1.3 Propiedades publicas
1.2.1.4 Mtodos pblicos
1.2.1.5 Operadores pblicos y conversiones de tipo
1.2.1.6 Mtodos protegidos
1.2.2 Estructura Size (tamaos)
1.2.2.1 Constructores pblicos
1.2.2.2 Campos pblicos
1.2.2.3 Propiedades publicas
1.2.2.4 Mtodos pblicos
1.2.2.5 Operadores pblicos y conversin de tipos
1.2.2.6 Mtodos protegidos
1.2.3 Estructura Rectangle (rectngulos)
1.2.3.1 Constructores pblicos
1.2.3.2 Campos pblicos
1.2.3.3 Propiedades publicas
1.2.3.4 Mtodos pblicos
1.2.3.5 Operadores pblicos
1.2.3.6 Mtodos protegidos
1.2.4 Estructura Color (colores)
1.2.4.1 Campos pblicos
1.2.4.2 Propiedades publicas
1.2.4.3 Mtodos pblicos
1.2.4.4 Operadores pblicos
1.2.4.5 Mtodos protegidos
1.2.5 Clase TypeConverter
1.2.5.1 Constructores pblicos
1.2.5.2 Mtodos pblicos
1.2.6 Clase ColorConverter
1.2.6.1 Constructores pblicos
1.2.6.2 Mtodos pblicos
1.2.6.3 Mtodos protegidos
1.2.7 Clase ColorTranslator
1.2.7.1 Mtodos pblicos
Jenaro C. Paz
________________________________________________________________________
Captulo 2
Su primera aplicacin GDI+ para Web
2.1 Imgenes, mapas de bits y metarchivos
2.1.1 Clase Image
2.1.1.1 Propiedades pblicas
2.1.1.2 Mtodos pblicos
2.1.1.3 Mtodos protegidos
2.1.2 Imgenes de trama (bitmaps)
2.1.2.1 Clase Bitmap
2.1.2.1.1 Constructores pblicos
2.1.2.1.2 Propiedades publicas
2.1.2.1.3 Mtodos pblicos
2.1.2.1.4 Mtodos protegidos
2.1.2.2 Tipos de mapas de bits
2.1.2.3 Formatos de archivos de grficos
2.1.2.3.1 BMP (Bit MaP, mapa de bits)
2.1.2.3.2 GIF (Graphics Interchange Format, formato de intercambio de
grficos)
2.1.2.3.3 JPEG (Joint Photographic Experts Group, grupo conjunto de
expertos en fotografa)
2.1.2.3.4 EXIF (Exchangeable Image File, archivo de imagen
intercambiable)
2.1.2.3.5 PNG (Portable Network Graphics, grficos de red porttiles)
2.1.2.3.6 TIFF (Tag Image File Format, formato de archivo de imgenes
con etiquetas)
2.1.3 Clase Metafile
2.1.3.1 Constructores pblicos
2.1.3.2 Propiedades publicas
2.1.3.3 Mtodos pblicos
2.1.3.4 Mtodos protegidos
2.1.3.5 Informacin general acerca de grficos vectoriales
2.2 Tcnica para la generacin de grficos en lnea en aplicaciones Web
Captulo 3
Objetos grficos
3.1 Clase Graphics
3.1.1 Propiedades pblicas
3.1.2 Mtodos pblicos
3.1.2.1 Mtodos pblicos para el dibujo
3.1.2.1.1 Dibujando imgenes mediante una forma Web
3.1.2.1.1.1 Generacin del lienzo de dibujo definido por su color y su
tamao
3.1.2.1.1.2
Dibujando lneas sobre una lienzo
3.1.2.1.1.3
Dibujando rectngulos sobre un lienzo
3.1.2.1.1.4
Dibujando elipses y arcos sobre un lienzo
3.1.2.1.1.5
Dibujando polgonos sobre un lienzo
3.1.2.1.1.6
Dibujando curvas sobre un lienzo
3.1.2.1.1.7
Dibujando curvas Bzier sobre un lienzo
Jenaro C. Paz
________________________________________________________________________
4.1.6.4 Mtodos protegidos
4.1.6.5 El uso de PathGradientBrush en una forma Web
4.2 Uso de plumas en GDI+
4.2.1 Clase Pens
4.2.1.1 Propiedades pblicas
4.2.2 Clase Pen
4.2.2.1 Constructores pblicos
4.2.2.2 Propiedades pblicas
4.2.2.3 Mtodos pblicos
4.2.2.4 Mtodos protegidos
4.2.2.5 El uso de diferente tipo de plumas en una forma Web
4.3 Transformaciones con plumas
4.4 Transformaciones con pinceles
4.4.1 Transformaciones para TextureBrush
4.4.2 Transformaciones para LinearGradientBrush
4.4.3 Transformaciones para PathGradientBrush
4.5 Plumas y pinceles del Sistema
4.5.1 Colores del Sistema
4.5.1.1 Clase SystemColors
4.5.1.1.1 Propiedades pblicas
4.5.2 Plumas del Sistema
4.5.2.1 Clase SystemPens
4.5.2.1.1 Propiedades pblicas
4.5.3 Pinceles del Sistema
4.5.3.1 Clase SystemBrushes
4.5.3.1.1 Propiedades pblicas
Captulo 5
Fuentes y Texto
5.1 Trabajando con Fuentes
5.1.1 Clase FontFamily
5.1.1.1 Constructores pblicos
5.1.1.2 Propiedades pblicas
5.1.1.3 Mtodos pblicos
5.1.1.4 Mtodos protegidos
5.1.2 Clase Font
5.1.2.1 Constructores pblicos
5.1.2.2 Propiedades pblicas
5.1.2.3 Mtodos pblicos
5.1.2.4 Mtodos protegidos
5.1.3 Miembros de la enumeracin FontStyle
5.1.4 Miembros de la enumeracin GraphicsUnit
5.2 Trabajando con Cadenas de Caracteres
5.2.1 Dibujando Cadenas de caracteres con formato
5.2.1.1 Clase StringFormat
5.2.1.1.1 Constructores pblicos
5.2.1.1.2 Propiedades pblicas
5.2.1.1.3 Mtodos pblicos
Jenaro C. Paz
________________________________________________________________________
8.1.3.1 Constructores pblicos
8.1.3.2 Propiedades pblicas
8.1.3.3 Mtodos pblicos
8.1.3.4 Mtodos protegidos
8.2 Procesamiento de imgenes
8.2.1 Modificacin de Color
8.2.1.1 Deteccin de orillas
8.2.1.2 Escala de grises
8.2.1.3 Inversin
8.2.1.4 Brillo
8.2.1.5 Contraste
8.2.1.6 Modificacin de Colores
8.2.2 Modificacin de la Imagen
8.2.2.1 Inversin de Imagen
8.2.2.2 Reflexin de Imagen
8.2.2.3 Escalamiento
8.2.2.4 Rotacin de Imagen
8.2.2.5 Perspectiva Horizontal
8.2.2.6 Perspectiva Vertical
8.2.2.7 Inclinacin Horizontal
8.2.2.8 Inclinacin Vertical
8.2.3 generacin de efectos por Convolucin
8.2.3.1 Borrado Gaussiano (Blur)
8.2.3.2 Emboss
8.2.3.3 Sharpen
8.2.3.4 Smooth
8.2.3.5 Mean Renoval
8.2.3.6 Edge Detection Quick
8.2.3.7 Deteccin de orillas por Convolucin mtodo Sobel
8.2.3.8 Deteccin de orillas por Convolucin mtodo Prewitt
8.2.3.9 Deteccin de orillas por Convolucin mtodo Kirsh
Captulo 9
Representacin matricial de Transformaciones
9.1 Matrices
9.2 Transformaciones con Matrices
9.2.1 Transformaciones Compuestas
9.3 Clase Matriz
9.3.1 Constructores pblicos
9.3.2 Propiedades pblicas
9.3.3 Mtodos pblicos
9.3.4 Mtodos protegidos
Introduccin1
Dentro del contexto de las nuevas Tecnologas de Microsoft, para el desarrollo de una
Aplicacin Web utilizamos
Framework.NET de Microsoft
Servidor MSSQL, para las bases de datos, tablas y procedimientos almacenados
Visual Studio.NET que es un IDE para el desarrollo de aplicaciones con
tecnologas .NET
Traduccin de la referencia en lnea de MSDN (Microsoft Developer Network) por J.C. Paz
http://msdn2.microsoft.com/en-us/library/zw4w595w.aspx junio 3 de 2006
Jenaro C. Paz
________________________________________________________________________
aplicaciones que abarcan desde las tradicionales herramientas de interfaz grfica de
usuario (GUI) o de lnea de comandos hasta las aplicaciones basadas en las innovaciones
ms recientes proporcionadas por ASP.NET, como los formularios Web Forms y los
servicios Web XML.
El Framework.NET puede alojarse en componentes no administrados que cargan al CLR
en sus procesos e inician la ejecucin de cdigo administrado, con lo que se crea un
entorno de software en el que se pueden utilizar caractersticas administradas y no
administradas. El Framework.NET no slo provee varios hosts de tiempo de ejecucin,
sino que tambin se admite el desarrollo de hosts por parte de terceros.
Por ejemplo, ASP.NET aloja el motor de tiempo de ejecucin para proporcionar un
entorno de servidor escalable para el cdigo administrado. ASP.NET trabaja directamente
con el motor de tiempo de ejecucin para habilitar aplicaciones de ASP.NET y servicios
Web XML, que se tratan ms adelante en este tema.
Internet Explorer es un ejemplo de aplicacin no administrada que aloja el motor de
tiempo de ejecucin (en forma de una extensin de tipo MIME). Al usar Internet
Explorer para alojar el motor de tiempo de ejecucin, puede incrustar componentes
administrados o controles de Windows Forms en documentos HTML. Al alojar el motor
de tiempo de ejecucin de esta manera se hace posible el uso de cdigo mvil
administrado (similar a los controles de Microsoft ActiveX), pero con mejoras
significativas que slo el cdigo administrado puede ofrecer, como la ejecucin
semiconfiable y el almacenamiento en archivos aislado.
En la ilustracin siguiente se muestra la relacin de CLR y la biblioteca de clases con las
aplicaciones y el sistema en su conjunto. En la ilustracin se representa igualmente cmo
funciona el cdigo administrado dentro de una arquitectura mayor.
10
11
Jenaro C. Paz
________________________________________________________________________
Adems, el motor de tiempo de ejecucin aumenta la productividad del programador. Por
ejemplo, los programadores pueden crear aplicaciones en el lenguaje que prefieran y
seguir sacando todo el provecho del motor de tiempo de ejecucin, la biblioteca de clases
y los componentes escritos en otros lenguajes por otros programadores. El proveedor de
un compilador puede elegir destinarlo al motor de tiempo de ejecucin. Los compiladores
de lenguajes que se destinan al Framework.NET hacen que las caractersticas del
Framework.NET estn disponibles para el cdigo existente escrito en dicho lenguaje, lo
que facilita enormemente el proceso de migracin de las aplicaciones existentes.
Aunque el motor de tiempo de ejecucin est diseado para el software del futuro,
tambin es compatible con el software actual y el software antiguo. La interoperabilidad
entre el cdigo administrado y no administrado permite que los programadores continen
utilizando los componentes COM y las DLL que necesiten.
El motor de tiempo de ejecucin est diseado para mejorar el rendimiento. Aunque
Common Language Runtime proporciona muchos servicios estndar de motor de tiempo
de ejecucin, el cdigo administrado nunca se interpreta. Una caracterstica denominada
compilacin JIT (Just-In-Time) permite ejecutar todo el cdigo administrado en el
lenguaje mquina nativo del sistema en el que se ejecuta. Mientras tanto, el administrador
de memoria evita que la memoria se pueda fragmentar y aumenta la zona de referencia de
la memoria para mejorar an ms el rendimiento.
Por ltimo, el motor de tiempo de ejecucin se puede alojar en aplicaciones de servidor
de gran rendimiento, como Microsoft SQL Server e IIS (Servicios de Internet
Information Server). Esta infraestructura permite utilizar cdigo administrado para
escribir su lgica de negocios, al tiempo que se disfruta del rendimiento superior de los
servidores empresariales que puedan alojar al motor de tiempo de ejecucin.
Aplicaciones de consola
Aplicaciones GUI de Windows (Windows Forms)
Aplicaciones de ASP.NET
Servicios Web XML
Servicios de Windows
Por ejemplo, las clases de Windows Forms son un conjunto completo de tipos
reutilizables que simplifican enormemente el desarrollo de interfaces GUI para Windows.
Si escribe una aplicacin Web Form de ASP.NET, puede utilizar las clases de Web
Forms.
13
Jenaro C. Paz
________________________________________________________________________
Las clases de Windows Forms contenidas en Framework.NET estn diseadas para
utilizarse en el desarrollo de GUI. Puede crear ventanas, botones, mens, barras de
herramientas y dems elementos de pantalla fcilmente con la flexibilidad requerida para
adaptarse a la evolucin de las necesidades de negocio.
Por ejemplo, .NET Framework proporciona propiedades simples para ajustar los atributos
visuales asociados con los formularios. En determinadas circunstancias, el sistema
operativo subyacente no permite cambiar estos atributos directamente y, entonces,
Framework.NET vuelve a crear los formularios de forma automtica. sta es una de las
mltiples maneras en que Framework.NET integra la interfaz del programador, con lo
que la creacin de cdigo resulta ms sencilla y ms coherente.
A diferencia de los controles ActiveX, los controles de Windows Forms tienen acceso al
equipo de del usuario con semiconfianza. Esto significa que el cdigo binario o que se
ejecuta de forma nativa puede tener acceso a algunos de los recursos del sistema del
usuario (como elementos de la GUI y acceso limitado a los archivos) sin tener acceso ni
comprometer los dems recursos. Debido a la seguridad de acceso a cdigo, muchas
aplicaciones que antes era necesario instalar en el sistema de un usuario, ahora se pueden
implementar con seguridad a travs del Web. Las aplicaciones pueden tener las
caractersticas de una aplicacin local a la vez que se implementan como una pgina
Web.
14
Jenaro C. Paz
________________________________________________________________________
El Framework.NET proporciona tambin una coleccin de clases y herramientas para
ayudar al desarrollo y uso de las aplicaciones de servicios Web XML. Los servicios Web
XML se basan en estndares como SOAP (un protocolo de llamadas a procedimientos
remotos), XML (un formato de datos extensible) y WSDL (el Lenguaje de descripcin de
servicios Web). En Framework.NET se utilizan estos estndares para fomentar la
interoperabilidad con soluciones que no son de Microsoft.
Por ejemplo, la herramienta de WSDL incluida en Framework.NET SDK puede consultar
un servicio Web XML publicado en el Web, analizar su descripcin WSDL y producir
cdigo fuente de C# o Visual Basic que la aplicacin puede utilizar para convertirse en
cliente del servicio Web XML en cuestin. El cdigo fuente puede crear clases derivadas
de las clases de la biblioteca de clases que controlan completamente la comunicacin
subyacente mediante SOAP y anlisis de XML. Aunque puede utilizar la biblioteca de
clases para usar los servicios Web XML directamente, la herramienta WSDL y las dems
herramientas incluidas en el SDK facilitan el trabajo de desarrollo con Framework.NET.
Si desarrolla y publica su propio servicio Web XML, Framework.NET proporciona un
conjunto de clases que cumplen todos los estndares de comunicacin subyacentes, como
SOAP, WSDL y XML. El uso de esas clases le permite centrarse en la lgica del
servicio, sin preocuparse de la infraestructura de comunicaciones que se requiere en el
desarrollo de software distribuido.
Por ltimo, al igual que los formularios Web en un entorno administrado, el servicio Web
XML se ejecutar con la velocidad del lenguaje mquina nativo mediante la
comunicacin escalable de IIS.
16
Captulo 12
GDI+: La nueva Generacin en Interfases grficas
Comenzaremos diciendo que el GDI+ de Microsoft es la parte del los sistemas operativos
Windows XP o Windows Server 2003 que provee grficos vectoriales en dos
dimensiones, compatibilidad de imgenes y tipografa. Es tambin una mejora del GDI
incluida en los sistemas operativos de Windows anteriores a XP. GDI+ reside en un
conjunto de clases que presentan compatibilidad con la versin anterior de GDI y
mediante esta biblioteca de clases se pueden escribir aplicaciones independientes de
dispositivos, lo que permite al programador hacer llamadas a los mtodos proporcionados
por las clases de GDI+ y estos mtodos a su vez se encargan de llamar a los controladores
de dispositivos necesarios para que la aplicacin se ejecute sin problema. GDI+ est
disponible como un redistribuible para Windows NT 4.0 SP6, Windows 2000, Windows
98 y Windows Me. Para descargar el ltimo redistribuible, entre al sitio:
http://www.microsoft.com/downloads
Y haga la bsqueda de Platform SDK Redistributable: GDI+, luego baje el archivo
gdiplus_dnld.exe, el cual al momento de ejecutar le permitir escoger el rbol de
directorios a usar. Tenga en cuenta que este redistribuible nicamente ser necesario
cuando se vaya a instalar en la misma computadora un programa ejecutable que fue
elaborado haciendo uso de esta nueva tecnologa.
Adems, GDI+ es una componente del CLR (Common Language Runtime) del
Framework .NET de Microsoft. Este ultimo que es descargable gratuitamente desde:
http://msdn.microsoft.com/netframework/
Es el modelo de programacin de la plataforma .NET. Los componentes clave del
Framework.NET como se indic en la introduccin son:
Traduccin de la referencia en lnea de MSDN (Microsoft Developer Network) por J.C. Paz
http://msdn.microsoft.com/library/en-us/gdicpp/GDIPlus/AboutGDIPlus/IntroductiontoGDIPlus junio 3 de
2006.
17
Jenaro C. Paz
________________________________________________________________________
aplicaciones Web para la empresa. que proporciona un modelo de programacin y
una estructura nuevos para crear aplicaciones ms seguras, escalables y estables.
A la hora de crear una aplicacin ASP.NET, se pueden utilizar formularios Web
Forms o servicios Web XML o combinarlas de la manera que ms les convenga.
Las dos caractersticas son compatibles con la misma infraestructura, que permite
utilizar esquemas de autenticacin, almacenar en cach datos que se utilizan con
frecuencia y personalizar la configuracin de la aplicacin, entre otras muchas
cosas.).
Es conveniente aclarar que hay dos versiones del Framework .Net
El Redistribuible, si desea ejecutar aplicaciones Windows en su computadora
que fueron elaboradas con esta nueva tecnologa y
La versin de Programador que incluye todo lo que los desarrolladores de
software necesitan para escribir, probar y poner en produccin aplicaciones
Framework.NET, adems incluye documentacin, ejemplos, herramientas de
lnea de comando y compiladores. Debe de instalarse primeramente el
redistribuible.
18
Administracin de color
Las clases de GDI+ residen en los siguientes seis espacios de nombres System.Drawing,
System.Drawing.Design, System.Drawing.Drawing2D, System.Drawing.Imaging,
System.Drawing.Printing y System.Drawing.Text. Todos estos espacios de nombres
se encuentran en el ensamblado System.Drawing.DLL.
Para usar cualquier clase definida en estos espacios de nombres, hay que incluirlos en su
aplicacin.
19
Jenaro C. Paz
________________________________________________________________________
El lienzo (canvas), que viene siendo el espacio donde los diferentes objetos se
dibujarn, en una aplicacin Web, la forma Web es el lienzo.
Cada superficie de dibujo cuenta con cuatro propiedades: ancho, alto, resolucin y
profundidad de color.
El ancho y alto de una superficie determinan su tamao y estos estn
especificados por el nmero de pixeles tanto horizontal como verticalmente.
Entendemos un pxel como el elemento ms pequeo que participa en un proceso
de dibujo para desplegar objetos grficos o imgenes en la pantalla. La densidad
de pixeles se representa por el valor de puntos por pulgada (dpi).
Traduccin de la referencia en lnea de MSDN (Microsoft Developer Network) por J.C. Paz
http://msdn.microsoft.com/library/en-us/gdicpp/GDIPlus/aboutGDIPlus/
coordinatesystemsandtransformations/ typesofcoordinatesystems.asp junio 3 de 2006
20
Puntos con valores negativos de x y no son visibles en este sistema de coordenadas, sin
embargo mediante transformaciones puede trasladarse el origen para que objetos con
valores negativos puedan mostrarse.
GDI+ usa tres espacios de coordenadas: mundiales, de pgina y de dispositivo. Cuando se
hace la llamada g.DrawLine(myPen,0,0,100,150), los puntos que se le pasan al
mtodo DrawLine [ (0,0) y (100,150)] estn dados en el espacio de coordenadas
mundiales. Antes que GDI+ pueda dibujar la lnea en la pantalla, las coordenadas pasan
por una serie de transformaciones. Una transformacin convierte las coordenadas
mundiales a coordenadas de pgina y otra transformacin convierte estas ltimas a
coordenadas de dispositivo.
Suponga que se va a trabajar con un sistema de coordenadas que tiene su origen en el
cuerpo del rea del cliente a 50 pixeles de la orilla izquierda y a 50 pixeles de la orilla
superior como se muestra a continuacin.
21
Jenaro C. Paz
________________________________________________________________________
Las coordenadas de los puntos extremos en los tres sistemas de coordenadas son:
Mundiales (0,0)
(100,150)
Pgina
(50,50) (150,200)
Dispositivo (50,50) (150,200)
Note que el sistema de coordenadas de pgina tiene su origen en la esquina superior
izquierda del rea del cliente y que debido a que la unidad de medida es el pxel, el
espacio de coordenadas de dispositivo es el mismo, pero que si la unidad de medida fuera
por ejemplo el centmetro entonces habra una diferencia entre los tres sistemas de
coordenadas.
La transformacin que convierte al sistema de coordenadas mundial al sistema de
coordenadas de pgina se llama transformacin mundial y esta sustentada por el objeto
Graphics. En el ejemplo anterior la Transformacin consiste en una translacin de 50
unidades en el eje x as como tambin en el eje de las y. En el siguiente ejemplo se
establece una transformacin mundial para un objeto Graphics y luego se utiliza este para
dibujar la lnea del ejemplo anterior.
g.TranslateTransform(50.0F,50.0F);
g.DrawLine(myPen,0,0,100,150);
22
donde myPen y myPen2 deben estar definidas de la manera anterior para que tenga un
grosor de 2 pixeles y 1 pixel y no de 2 y 1 pulgadas
GraphicsUnit4 es una enumeracin que contiene los elementos:
Nombre de miembro
Display
Document
Inch
Millimeter
Pixel
Point
World
Descripcin
Especifica 1/75 de pulgada como unidad de
medida.
Especifica la unidad del documento (1/300
de pulgada) como unidad de medida.
Especifica que la pulgada es la unidad de
medida.
Especifica que el milmetro es la unidad de
medida.
Especifica que un pxel de dispositivo es la
unidad de medida.
Especifica que un punto de la impresora
(1/72 de pulgada) es la unidad de medida.
Especifica que la unidad universal es la
unidad de medida.
Traduccin de la referencia en lnea de MSDN (Microsoft Developer Network) por J.C. Paz
http://msdn.microsoft.com/library/en-us/cpref/html/frlrfSystemDrawingGraphicsUnitClassTopic.asp
junio 3 2006
23
Jenaro C. Paz
________________________________________________________________________
Si suponemos que el dispositivo de despliegue (pantalla) tiene 72 puntos por pulgada en
ambas direcciones, los puntos extremos de la lnea en el ejemplo anterior tienen los
siguientes valores en los tres espacios de coordenadas:
Mundiales (0,0)
(1,2)
Pgina
(0.5,0.5) (1.5,2.5)
Dispositivo (36,36) (108,180)
1.2
Estructuras Esenciales
Estas siete estructuras junto con CharacterRange son las ocho nicas estructuras
definidas en el espacio de nombres System.Drawing5. Aunque en C# las clases y las
estructuras son muy parecidas ya que sus mtodos y campos (al igual que propiedades y
eventos) son privados en ambas, difieren en que las clases son tipos referencia (o
apuntadores a bloques de memoria) y las estructuras son tipos valor as como los tipos
bsicos
-Boolean, Byte, Char, Decimal, Double, Int16, Int32, Int64, SByte, Single, UInt16,
UInt32, UInt64-. Todas estas estructuras (vase Figura 1.2)
descienden de
5
Traduccin de la referencia en lnea de MSDN (Microsoft Developer Network) por J.C. Paz
http://msdn.microsoft.com/library/en-us/cpref/html/frlrfSystemDrawing.asp junio 3 2006
25
Jenaro C. Paz
________________________________________________________________________
System.ValueType y debe pensarse en este tipo de datos como objetos livianos o
pequeos que se crean y destruyen con frecuencia.
Point (Constructor)
Ejemplos:
Point aPoint = Point.Empty;
26
Equals
GetHashCode
GetType (se hereda de Object)
Offset
Round
ToString
Truncate
Ejemplos:
PointF bPoint=new PointF(20.5F,13.2F);
Point cPoint=Point.Ceiling(bPoint);
Point dPoint= new Point(20,13);
Boolean bvar=bPoint.Equals(dPoint);
int hCode=dPoint.GetHashCode();
Type oneType = dPoint.GetType();
dPoint.Offset(1,2); // p(21,15)
Point ePoint=Point.Round(bPoint);
String sPoint = ePoint.ToString();
Point hPoint = Point.Truncate(bPoint);
27
Jenaro C. Paz
________________________________________________________________________
Operador de igualdad
Operador de desigualdad
Operador de resta
Conversin de Point a Size
Conversin de Point a PointF
Ejemplos:
Point hPoint
Size tSize
Point iPoint
Point jPoint
bool areEqual
bool unEqual
Point mPoint
Size nSize
PointF fPoint
=
=
=
=
=
=
=
=
=
new Point(5,4);
new Size(10,10);
hPoint + tSize;
new Point(30,23);
iPoint == jPoint;
iPoint != mPoint;
iPoint-tSize;
new Size(iPoint);
(PointF)jPoint;
28
=
=
=
=
new
new
new
new
Point(5,4);
Size();
Size(10,10);
Size(hPoint);
Ejemplos:
Size aSize = Size.Empty;
Ejemplos:
Size aSize
= Size.Empty;
aSize.Height = 20;
aSize.Width = 4*aSize.Height;
if(!aSize.IsEmpty) {aSize.Height=0; aSize.Width=0;}
Equals
GetHashCode
GetType (se hereda de Object)
Round
Jenaro C. Paz
________________________________________________________________________
cercanos.
Reemplazado. Crea una cadena legible para
el usuario que representa este Size.
Convierte la estructura SizeF especificada
en una estructura Size mediante el
truncamiento de los valores de la estructura
Size a los valores enteros inferiores
siguientes.
ToString
Truncate
Ejemplos:
SizeF bSize=new SizeF(23.5F,23.2F);
Size cSize=Size.Ceiling(bSize);
Size dSize= new Size(29,33);
Boolean b_var=bSize.Equals(dSize);
int h_Code=dSize.GetHashCode();
Type theType = dSize.GetType();
Size eSize=Size.Round(bSize);
String sSize = eSize.ToString();
Size hSize = Size.Truncate(bSize);
Ejemplos:
Size oSize
Size pSize
Size iSize
Size jSize
bool bEqual
bool bunEqual
Size mSize
Point nPoint
SizeF fSize
30
=
=
=
=
=
=
=
=
=
new Size(15,24);
new Size(10,10);
oSize + pSize;
new Size(34,122);
iSize == jSize;
iSize != oSize;
iSize-tSize;
new Point(iSize);
(SizeF)jSize;
Rectangle (Constructor)
=
=
=
=
=
new
new
new
new
new
Rectangle(15,24,80,60);
Point(20,20);
Size(73,127);
Rectangle(onePoint, theSize);
RectangleF(10.3F,24.7F,86.4F,45.3F);
Ejemplos:
Rectangle hRect = Rectangle.Empty;
31
Jenaro C. Paz
________________________________________________________________________
Height
IsEmpty
Left
Location
Right
Size
Top
Width
Ejemplos:
int Y1 = aRect.Top;
int Y2 = aRect.Bottom;
int X1 = aRect.Left;
int X2 = aRect.Right;
int aWidth = aRect.Width;
int aHeight = aRect.Height;
Point onePoint
= new Point(20,20);
Size theSize
= new Size(73,127);
Rectangle cRect = Rectangle.Empty;
If(cRect.IsEmpty)
{
cRect.X = X1;
cRect.Y = Y1;
cRect.Size=theSize;
32
Contains
Equals
FromLTRB
GetHashCode
Intersect
IntersectsWith
Offset
Round
ToString
33
Jenaro C. Paz
________________________________________________________________________
Convierte el objeto RectangleF especificado
en Rectangle mediante el truncamiento de
los valores RectangleF.
Obtiene una estructura Rectangle que
contiene la interseccin de dos estructuras
Rectangle.
Truncate
Union
Ejemplos:
RectangleF aR = new RectangleF(5.3F, 2.1F, 23.9F,45.6F);
Rectangle bR
= Rectangle.Ceiling(aR);
bool bInside
= aR.Contains(6.7F,4.5F);
bool bInside2 = aR.Contains(bR);
bool bEQ
= aR.Equals(bR);
Rectangle myR = Rectangle.FromLTRB(X1,Y1,X2,Y2);
Type rType
= myR.GetType();
aR.Inflate(23.5F,12.9F);
bR.Intersect(dRect);
bool bIntersect = aR.IntersectsWith(bR);
aR.Offset(10.0F,10.0F);
Rectangle cR = Rectangle.Round(aR);
string sRect = cR.ToString();
Rectangle dR = Rectangle.Truncate(aR);
Rectangle Ra = new Rectangle(5,5,20,20);
Rectangle Rb = new Rectangle(10,10,30,30);
Rectangle rectan = Rectangle.Union(Ra,Rb);
Operador de desigualdad
Ejemplos:
RectangleF aR =
Rectangle bR =
bool bEqualRect
bool bSameRect
34
Empty
IsKnownColor
IsNamedColor
35
Jenaro C. Paz
________________________________________________________________________
colores predefinidos.
Especifica si esta estructura Color es un
color del sistema. Un color del sistema es un
color utilizado en un elemento que se
muestra en Windows. Los elementos de la
enumeracin KnownColor representan los
colores del sistema.
Obtiene el nombre de este nombre de
Color. Devolver el nombre del color
definido por el usuario, si el color se cre a
partir de un nombre, o el nombre de un
color conocido. Para los colores
personalizados, se devuelve el valor RGB.
Obtiene el valor del componente rojo de
esta estructura Color.
IsSystemColor
Name
Propiedades pblicas (
AliceBlue
AntiqueWhite
Aqua
Aquamarine
Azure
Beige
Bisque
Black
BlanchedAlmond
Blue
BlueViolet
Brown
BurlyWood
CadetBlue
Chartreuse
Chocolate
Coral
CornflowerBlue
Cornsilk
Crimson
Cyan
DarkBlue
DarkCyan
DarkGoldenrod
DarkGray
DarkGreen
DarkKhaki
DarkMagenta
36
DarkTurquoise
DarkViolet
DeepPink
DeepSkyBlue
DimGray
DodgerBlue
Firebrick
FloralWhite
ForestGreen
Fuchsia
Gainsboro
GhostWhite
Gold
Goldenrod
Gray
Green
GreenYellow
Honeydew
HotPink
IndianRed
Indigo
Ivory
Khaki
Lavender
LavenderBlush
LawnGreen
LemonChiffon
LightBlue
LightSkyBlue
LightSlateGray
LightSteelBlue
LightYellow
Lime
LimeGreen
Linen
Magenta
Maroon
MediumAquamarine
MediumBlue
MediumOrchid
MediumPurple
MediumSeaGreen
MediumSlateBlue
MediumSpringGreen
MediumTurquoise
MediumVioletRed
MidnightBlue
MintCream
MistyRose
Moccasin
NavajoWhite
Navy
OldLace
Olive
OliveDrab
Orange
Peru
Pink
Plum
PowderBlue
Purple
Red
RosyBrown
RoyalBlue
SaddleBrown
Salmon
SandyBrown
SeaGreen
SeaShell
Sienna
Silver
SkyBlue
SlateBlue
SlateGray
Snow
SpringGreen
SteelBlue
Tan
Teal
Thistle
Tomato
Transparent
Turquoise
Violet
LightCoral
LightCyan
LightGoldenrodYellow
LightGray
LightGreen
LightPink
LightSalmon
LightSeaGreen
OrangeRed
Orchid
PaleGoldenrod
PaleGreen
PaleTurquoise
PaleVioletRed
PapayaWhip
PeachPuff
Wheat
White
WhiteSmoke
Yellow
YellowGreen
FromArgb
FromKnownColor
FromName
GetBrightness
GetHashCode
GetHue
GetSaturation
ToArgb
ToKnownColor
37
Jenaro C. Paz
________________________________________________________________________
ToString
Operador de desigualdad
Ejemplos:
RectangleF aR = new RectangleF(5.3F, 2.1F, 23.9F,45.6F);
//Crear un color usando ARGB
Color redColor = Color.FromArgb(120,255,0,0);
//Crear un color usando su nombre
Color orchidColor = Color.FromName(Orchid);
//Crear un color a partir de un color conocido
Color blueColor = Color.FromKnowColor(KnownColor.Blue);
//Crear un color vacio
Color unColor = Color.Empty;
//Verifica si un color es vacio
if(unColor.IsEmpty)
{
unColor = Color.LightGoldenrodYellow;
}
//Valor de propiedades
string str = Color : + greenColor.Name +
, A: + greenColor.A.ToString() +
, R: + greenColor.R.ToString() +
, G: + greenColor.G.ToString() +
, B: + greenColor.B.ToString();
//Creacion de Color
38
CanConvertTo
ConvertFrom
Traduccin de la referencia en lnea de MSDN (Microsoft Developer Network) por J.C. Paz
http://msdn.microsoft.com/library/en-us/cpref/html/frlrfsystemcomponentmodeltypeconverterclasstopic.asp
junio 3 de 2006
39
Jenaro C. Paz
________________________________________________________________________
ConvertFromInvariantString
ConvertFromString
ConvertTo
ConvertToInvariantString
ConvertToString
CreateInstance
GetPropertiesSupported
GetStandardValues
GetStandardValuesExclusive
GetStandardValuesSupported
La clase ColorConverter que ahora veremos se usa para convertir colores de un tipo de
datos a otro. Esta clase se hereda de la clase TypeConverter, quien define la
funcionalidad en la conversin de los tipos y la forma de acceder a los valores y
propiedades de ellos. En el Captulo 5 Fuentes y Texto veremos la clase FontConverter.
Traduccin de la referencia en lnea de MSDN (Microsoft Developer Network) por J.C. Paz
http://msdn.microsoft.com/library/en-us/cpref/html/frlrfsystemdrawingcolorconverterclasstopic.asp
junio 3 2006
41
Jenaro C. Paz
________________________________________________________________________
42
Sobrecargado.
Sobrecargado.
Sobrecargado.
Sobrecargado. Convierte el valor a un tipo
de este conversor, utilizando la referencia
cultural invariable.
Sobrecargado. Convierte el texto
especificado a un objeto.
Sobrecargado.
Sobrecargado. Convierte el valor
especificado a una representacin de cadena
invariable de la referencia cultural.
Sobrecargado. Convierte el valor
especificado a una representacin de
cadena.
Sobrecargado. Vuelve a crear un Object
dado un conjunto de valores de propiedad
del objeto.
Sobrecargado. Determina si dos instancias
de Object son iguales.
Sobrecargado. Devuelve si al cambiar un
valor de este objeto es necesario llamar a
CreateInstance para crear un nuevo valor.
Sirve como funcin hash para un tipo
concreto, apropiado para su utilizacin en
algoritmos de hash y estructuras de datos
como las tablas hash.
Sobrecargado. Devuelve una coleccin de
propiedades para el tipo de matriz
especificado por el valor del parmetro.
Sobrecargado. Devuelve si este objeto
admite propiedades.
Sobrecargado.
Sobrecargado. Devuelve si la coleccin de
valores estndar devueltos por
GetStandardValues es una lista exclusiva.
Sobrecargado.
Obtiene el objeto Type de la instancia
actual.
Sobrecargado. Devuelve si el valor de
objeto dado es vlido para este tipo.
Traduccin de la referencia en lnea de MSDN (Microsoft Developer Network) por J.C. Paz
http://msdn.microsoft.com/library/en-us/cpref/html/frlrfsystemdrawingcolortranslatorclasstopic.asp
junio 3 de 2006
43
Jenaro C. Paz
________________________________________________________________________
ToOle
ToWin32
44
45
Jenaro C. Paz
________________________________________________________________________
46