Bienvenidos a una nueva entrega más sobre el lenguaje Small Basic, en ella hablaremos de la librería ImageList y terminaremos con la librería GraphicsWindow mostrando el último ejemplo que nos faltaba. En fin, la librería ImageList sirve para cargar imágenes almacenadas en el disco duro o en una página web, y que consta de tan solo 3 operaciones:
- LoadImage(ruta): Carga en memoria una imagen desde un fichero del disco duro o de internet, devolviendo el nombre de la imagen cargada, el cual luego tendremos que usar para poder pintarla en la ventana u obtener información sobre ella.
- GetWidthOfImage(nombreImagen): Devuelve el ancho de una imagen cargada en memoria.
- GetHeightOfImage(nombreImagen): Devuelve el alto de una imagen cargada en memoria.
Pues con estas operaciones, y las que nos quedaban por utilizar de GraphicsWindow, tenemos el siguiente código de ejemplo donde pintaremos una misma imagen de dos formas distintas, la imagen de forma normal y la imagen redimensionada:
'----------------------------------------------------
' Pintando imágenes
'----------------------------------------------------
GraphicsWindow.Title = "Usando imágenes"
path = Program.Directory + "\"
path = path + "image.jpg"
img = ImageList.LoadImage(path)
imgw = ImageList.GetWidthOfImage(img)
imgh = ImageList.GetHeightOfImage(img)
w = imgw
h = imgh
GraphicsWindow.KeyDown = OnKeyDown
Render()
'----------------------------------------------------
Sub Render
GraphicsWindow.Clear()
GraphicsWindow.DrawImage(img, 10, 10)
GraphicsWindow.DrawResizedImage(img, 200, 10, w, h)
EndSub
'----------------------------------------------------
Sub OnKeyDown
If GraphicsWindow.LastKey = "Up" Then
h = h - 1
ElseIf GraphicsWindow.LastKey = "Down" Then
h = h + 1
ElseIf GraphicsWindow.LastKey = "Left" Then
w = w - 1
ElseIf GraphicsWindow.LastKey = "Right" Then
w = w + 1
EndIf
Render()
EndSub
En el próximo artículo hablaremos sobre la librería Shapes, que es una forma un tanto más útil para pintar formas e imágenes y poder moverlas sin tener que estar limpiando la ventana de forma constante, produciendo ese molesto parpadeo típico de una aplicación que no utiliza el Double Buffering. Ala, que os sea leve.
