Beruflich Dokumente
Kultur Dokumente
PROGRAMACION
MANIPULACIN DE IMGENES EN EL
VISUAL BASIC .NET
CONTENIDO
CAPITULO UNO.............................................................................................................................................3
PANORAMA GENERAL DE LOS SISTEMAS DE GRAFICAS PARA VISUAL BASIC.NET ............3
1.1.
USOS Y APLICACIONES .............................................................................................................3
1.2.
COMPONENTES DE UN SISTEMA DE GRAFICOS ..................................................................4
1.3.
TIPOS DE DESPLIEGUE ..............................................................................................................6
1.4.
SOFTWARE DE GRAFICAS ........................................................................................................6
1.5.
PRIMITIVAS DE GRAFICOS .......................................................................................................7
1.6.
DESPLIEGUE DE CURVAS .........................................................................................................7
1.6.1. TRAZADO DE CURVAS EN GENERAL....................................................................................7
1.7.
EJEMPLOS DE DESPLIEGUE DE CURVAS.............................................................................10
CAPITULO DOS ...........................................................................................................................................15
MANIPULACION BASICA DE IMGENES EN EL VISUAL BASIC .NET ........................................15
2.1.
POINT (ESTRUCTURA)....................................................................................................................15
2.1.1. Constructores pblicos.............................................................................................................15
2.1.2. Campos pblicos ......................................................................................................................16
2.1.3. Mtodos pblicos .....................................................................................................................16
2.1.4. Operadores pblicos y conversiones de tipos ..........................................................................17
2.1.5. Mtodos protegidos ..................................................................................................................18
2.2.
BITMAP (CLASE)............................................................................................................................18
2.2.1. Constructores pblicos.............................................................................................................18
2.2.2. Bitmap (Constructor) ...............................................................................................................19
2.2.3. Propiedades pblicas ...............................................................................................................20
2.2.4. Mtodos pblicos .....................................................................................................................21
2.2.5. Mtodos protegidos ..................................................................................................................23
2.3.
COLOR (ESTRUCTURA) ..................................................................................................................24
2.3.1. Campos pblicos ......................................................................................................................24
2.3.2. Propiedades pblicas ...............................................................................................................24
2.3.3. Mtodos pblicos .....................................................................................................................37
2.3.4. Operadores pblicos ................................................................................................................38
2.3.5. Mtodos protegidos ..................................................................................................................38
2.4.
EJEMPLO DE LA MANIPULACION DE IMGENES ..................................................................39
ii
CAPITULO UNO
PANORAMA GENERAL DE LOS SISTEMAS
DE GRAFICAS PARA VISUAL BASIC.NET
1.1. USOS Y APLICACIONES
No existe ningn rea en que no se puedan aplicar las
grficas por computadora con algn beneficio. Entre
algunas aplicaciones se tiene:
a) Diseo Asistido por Computadora
b) Grficas de presentacin.
Ilustran datos y relaciones entre estos y muestran
modelos en diversas reas como finanzas, ciencias.
Geografa, economa, etc.
e) Educacin y Capacitacin
f) Visualizacin
g) Procesamiento de imgenes
Instruccio
nes de
Software
Ordenes o comandos
Representac
in Interna
Dispositiv
o de
despliegue
Buffer de referencia
Software
/
Hardware
Monitor de
video.
Impresora
Graficador
o plotter
COLUMNAS
0
FIL
A
XMAX-1
0
1
Y
YMAX1
YMAX
XMAX
RESOLUCION DE
LA IMAGEN
= XMAX * YMAX
Imagen con
coordenada
s
mundiales
Coordenadas
de
dispositivo
Dispositivo
s de
despliegue
creacin
X = f(Y)
Donde : valor menor <= Y <= valor mayor
Ejemplo:
Y=sen(X)
Y=X2
0<= X<=360
-10<=X<=10
Y=f(t)
X = t2 + t + 1
50<=t<=50)
10
utilice
(las
Determinar la variable X e Y o el
parmetro t que da el mayor nmero de
puntos posibles en la curva.
Ym
-Xm
Xm
-Ym
Figura 1.1 Sistema de coordenadas mundiales
Las
coordenadas
de
pantalla
son
las
coordenadas que utiliza el monitor en el modo
grfico (figura 1.2).
X
0
Dispositivo
de
salida(Pantal
la)
(XMAX-1, YMAX-1)
Figura 1.2 Sistema de coordenadas de pantalla.
X = X0+Xm
Y=Y0-Ym
Donde:
(X,Y) =coordenadas de pantalla
(Xm, Ym)=coordenadas mundiales.
End Sub
11
punto.X = x - 1
punto.Y = y - 1
punto.Width = 2
punto.Height = 2
g.DrawEllipse(milapiz1, punto)
Next
End Sub
12
Ejemplo:
Escriba
un
programa
que
muestre
la
trayectoria recorrida por los puntos B y C de la
figura,
siendo
A
fijo
y
AB
gira
en
sentido
antihorario; adems C siempre tiene un recorrido sobre
el eje X. Para la solucin vea el proyecto curvas.
Y
70m
90m
alfa As Double
xma, yma, xmb, ymb, xa, ya, xb, yb As Integer
= 0
= 0
'trazado de la curva
For alfa = 0 To 390
xmb = CInt(70 * Math.Cos(alfa * 3.1416 / 180))
ymb = CInt(70 * Math.Sin(alfa * 3.1416 / 180))
xa = x0 + xma
Mg. Abraham Gamarra Moreno
13
ya = y0 - yma
xb = x0 + xmb
yb = y0 - ymb
ymc = yma
xmc = CInt(Math.Sqrt(90 * 90 - Math.Sin(alfa * 3.1416 / 180)
* Math.Sin(alfa * 3.1416 / 180)) + 70 * Math.Cos(alfa * 3.1416 / 180))
xc = x0 + xmc
yc = y0 - ymc
Dim i As Integer
For i = 1 To 5000000
Next
g.Clear(Color.Yellow)
'ejes
g.DrawLine(milapiz2, 0, y0, x0 * 2, y0)
g.DrawLine(milapiz2, x0, 0, x0, y0 * 2)
'barra
g.DrawLine(milapiz1, xa, ya, xb, yb)
g.DrawLine(milapiz1, xb, yb, xc, yc)
Next
End Sub
14
CAPITULO DOS
MANIPULACION BASICA DE IMGENES EN
EL VISUAL BASIC .NET
Para una referencia del Visual Basic .Net
archivo VBnet.pdf adjunto a la presente obra.
vea
el
Inicializa una nueva instancia de la clase Point con las coordenadas especificadas.
Lista de sobrecarga
Mg. Abraham Gamarra Moreno
15
Inicializa una nueva instancia de la clase Point con las coordenadas que especifica un valor
entero.
Public Sub New(Integer)
Inicializa una nueva instancia de la clase Point a partir de un objeto Size.
Public Sub New(Size)
Inicializa una nueva instancia de la clase Point con las coordenadas especificadas.
Compatible con .NET Compact Framework.
Public Sub New(Integer, Integer)
IsEmpty
Compatible con .NET Compact Framework.
X
Compatible con .NET Compact Framework.
Y
Compatible con .NET Compact Framework.
Obtiene o establece la
coordenada x de este objeto
Point.
Obtiene o establece la
coordenada y de este objeto
Point.
16
GetHashCode
Compatible con .NET Compact Framework.
GetType (se hereda de
Object)
Reemplazado. Devuelve un
cdigo hash para este objeto
Point.
Obtiene el objeto Type de la
instancia actual.
17
Conversin de Point a
Size
Conversin de Point a
PointF
18
19
Inicializa una nueva instancia de la clase Bitmap con el tamao y el formato especificados.
Public Sub New(Integer, Integer, PixelFormat)
Inicializa una nueva instancia de la clase Bitmap con el tamao, el formato de pxeles y los
datos de pxeles especificados.
Public Sub New(Integer, Integer, Integer, PixelFormat,
IntPtr)
Obtiene la resolucin
horizontal, en pxeles por
pulgada, de este objeto Image.
Obtiene o establece la paleta
de colores de este objeto
Image.
Obtiene el ancho y el alto de
esta imagen.
Obtiene el formato de pxeles
de este objeto Image.
20
VerticalResolution (se
hereda de Image)
21
hereda de Image)
codificador de imgenes
especificado.
Devuelve el nmero de marcos
GetFrameCount (se hereda de de la dimensin especificada.
Image)
Sirve como funcin hash para
GetHashCode (se hereda de un tipo concreto, apropiado
Object)
para su utilizacin en
Compatible con .NET Compact Framework. algoritmos de hash y
estructuras de datos como las
tablas hash.
Sobrecargado. Crea un objeto
de mapa de bits de GDI a
GetHbitmap
partir de un objeto Bitmap
GDI+.
Devuelve el identificador de
un icono.
GetHicon
Recupera el objeto de servicio
de duracin actual que
GetLifetimeService (se
hereda de MarshalByRefObject) controla la directiva de
duracin de esta instancia.
Obtiene el color del pxel
especificado de este Bitmap.
GetPixel
Compatible con .NET Compact Framework.
Obtiene el elemento de
GetPropertyItem (se hereda propiedad especificado de este
de Image)
objeto Image.
Devuelve una vista en
miniatura de este objeto
GetThumbnailImage (se
hereda de Image)
Image.
Obtiene el objeto Type de la
GetType (se hereda de Ob- instancia actual.
ject)
Compatible con .NET Compact Framework.
InitializeLifetimeService
(se hereda de
MarshalByRefObject)
LockBits
MakeTransparent
22
23
AliceBlue
Compatible con .NET Compact Framework.
AntiqueWhite
Compatible con .NET Compact Framework.
Aqua
Compatible con .NET Compact Framework.
Aquamarine
24
Chocolate
Compatible con .NET Compact Framework.
Coral
Compatible con .NET Compact Framework.
CornflowerBlue
Compatible con .NET Compact Framework.
Cornsilk
Compatible con .NET Compact Framework.
Crimson
Compatible con .NET Compact Framework.
Cyan
Compatible con .NET Compact Framework.
DarkBlue
Compatible con .NET Compact Framework.
DarkCyan
Compatible con .NET Compact Framework.
DarkGoldenrod
Compatible con .NET Compact Framework.
DarkGray
Compatible con .NET Compact Framework.
DarkGreen
Compatible con .NET Compact Framework.
DarkKhaki
26
DeepSkyBlue
Compatible con .NET Compact Framework.
DimGray
Compatible con .NET Compact Framework.
DodgerBlue
Compatible con .NET Compact Framework.
Firebrick
Compatible con .NET Compact Framework.
FloralWhite
Compatible con .NET Compact Framework.
ForestGreen
Compatible con .NET Compact Framework.
Fuchsia
Compatible con .NET Compact Framework.
G
Compatible con .NET Compact Framework.
Gainsboro
Compatible con .NET Compact Framework.
GhostWhite
Compatible con .NET Compact Framework.
Gold
Compatible con .NET Compact Framework.
Goldenrod
28
IsNamedColor
IsSystemColor
Mg. Abraham Gamarra Moreno
Khaki
Compatible con .NET Compact Framework.
Lavender
Compatible con .NET Compact Framework.
LavenderBlush
Compatible con .NET Compact Framework.
LawnGreen
Compatible con .NET Compact Framework.
LemonChiffon
Compatible con .NET Compact Framework.
LightBlue
Compatible con .NET Compact Framework.
LightCoral
Compatible con .NET Compact Framework.
LightCyan
Compatible con .NET Compact Framework.
LightGoldenrodYellow
Maroon
Compatible con .NET Compact Framework.
MediumAquamarine
MediumBlue
Compatible con .NET Compact Framework.
MediumOrchid
Compatible con .NET Compact Framework.
MediumPurple
Compatible con .NET Compact Framework.
MediumSeaGreen
Compatible con .NET Compact Framework.
MediumSlateBlue
Compatible con .NET Compact Framework.
MediumSpringGreen
MediumTurquoise
Compatible con .NET Compact Framework.
MediumVioletRed
Compatible con .NET Compact Framework.
MidnightBlue
Compatible con .NET Compact Framework.
MintCream
32
NavajoWhite
33
Orchid
Compatible con .NET Compact Framework.
PaleGoldenrod
Compatible con .NET Compact Framework.
PaleGreen
Compatible con .NET Compact Framework.
PaleTurquoise
Compatible con .NET Compact Framework.
PaleVioletRed
Compatible con .NET Compact Framework.
PapayaWhip
Compatible con .NET Compact Framework.
PeachPuff
Compatible con .NET Compact Framework.
Peru
Compatible con .NET Compact Framework.
Pink
Compatible con .NET Compact Framework.
Plum
Compatible con .NET Compact Framework.
PowderBlue
Compatible con .NET Compact Framework.
Purple
Compatible con .NET Compact Framework.
34
R
Compatible con .NET Compact Framework.
Red
35
SlateBlue
Compatible con .NET Compact Framework.
SlateGray
Compatible con .NET Compact Framework.
Snow
Compatible con .NET Compact Framework.
SpringGreen
Compatible con .NET Compact Framework.
SteelBlue
Compatible con .NET Compact Framework.
Tan
Compatible con .NET Compact Framework.
Teal
Compatible con .NET Compact Framework.
Thistle
Compatible con .NET Compact Framework.
Tomato
Compatible con .NET Compact Framework.
Transparent
Compatible con .NET Compact Framework.
Turquoise
Compatible con .NET Compact Framework.
Violet
Compatible con .NET Compact Framework.
36
Wheat
37
GetHue
GetSaturation
ToArgb
Compatible con .NET Compact Framework.
39
archivo = "..\"
Select Case ListBox1.SelectedItem
Case "imagen1.bmp"
archivo = archivo + "imagen1.bmp"
Case "imagen2.bmp"
archivo = archivo + "imagen2.bmp"
Case "imagen3.bmp"
archivo = archivo + "imagen3.bmp"
End Select
'dibujar imagen
myBitmap = Bitmap.FromFile(archivo)
g.DrawImage(myBitmap, mipunto)
End Sub
40
archivo = "..\"
Select Case ListBox1.SelectedItem
Case "imagen1.bmp"
archivo = archivo + "imagen1.bmp"
Case "imagen2.bmp"
archivo = archivo + "imagen2.bmp"
Case "imagen3.bmp"
archivo = archivo + "imagen3.bmp"
End Select
'dibujar imagen
myBitmap = Bitmap.FromFile(archivo)
g.DrawImage(myBitmap, mipunto)
Mg. Abraham Gamarra Moreno
41
255
= 255
255
0
mybitmapf.SetPixel(x, y, pixelColor1.FromArgb(rojo,
verde, azul))
Next
Next
g.DrawImage(mybitmapf, mipunto)
End Sub
42
archivo = "..\"
Select Case ListBox1.SelectedItem
Case "imagen1.bmp"
archivo = archivo + "imagen1.bmp"
Case "imagen2.bmp"
archivo = archivo + "imagen2.bmp"
Case "imagen3.bmp"
archivo = archivo + "imagen3.bmp"
End Select
'dibujar imagen
myBitmap = Bitmap.FromFile(archivo)
g.DrawImage(myBitmap, mipunto)
cad = InputBox("ingrese un valor de 1 a 255 ", , , , )
Mg. Abraham Gamarra Moreno
43
variacion = Val(cad)
' copiar mapa de bits
mybitmapf = myBitmap
'encontrar dimensiones en pixeles
resy = myBitmap.Height
resx = myBitmap.Width
For x = 0 To resx - 1
For y = 0 To resy - 1
pixelColor = myBitmap.GetPixel(x, y)
azul = pixelColor.B
verde = pixelColor.G
rojo = pixelColor.R
azul = azul - variacion
verde = verde - variacion
rojo = rojo - variacion
If (rojo > 255) Then rojo =
If (verde > 255) Then verde
If (azul > 255) Then azul =
If (rojo < 0) Then rojo = 0
If (verde < 0) Then verde =
If (azul < 0) Then azul = 0
255
= 255
255
0
mybitmapf.SetPixel(x, y, pixelColor1.FromArgb(rojo,
verde, azul))
Next
Next
g.DrawImage(mybitmapf, mipunto)
End Sub
44