---
title: roImageWidget
slug: develop/es/roimagewidget
docTags: 
createdAt: 2025-03-11T07:07:18.732Z
---

Este objeto se puede usar en lugar de *roImagePlayer* en los casos en que la imagen se muestra dentro de un rectángulo. El uso de un *roImageWidget* puede dar como resultado una estética más agradable para la creación de reproductores de imágenes; también se puede usar para mostrar imágenes en una matriz multipantalla. Más allá de esto, *roImageWidget* se comporta de manera idéntica a *roImagePlayer*. El equivalente en JavaScript es la etiqueta [`<img>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img) en HTML

Creación de objetos: el área del widget de imagen se genera usando un objeto *roRectangle*.

```text
rectangle = CreateObject("roRectangle", 0, 0, 1024, 768)
i = CreateObject("roImageWidget", rectangle)
```

## ifImageControl 

### DisplayFile(image\_filename As String) As Boolean

Muestra la imagen con el nombre de archivo especificado. La cadena image\_filename debe apuntar a un archivo *.png*, *.jpeg*, o *.bmp* de 8 bits, 24 bits o 32 bits. Tenga en cuenta que los archivos de imagen *.jpeg* con perfiles de color CMYK no son compatibles.

### DisplayFile(parameters As roAssociativeArray) As Boolean

Muestra una imagen usando una matriz asociativa de parámetros de visualización:

- `Nombre de archivo`: El nombre del archivo de imagen
- `Modo`: El modo de imagen. Consulte la entrada de SetDefaultMode() a continuación para obtener más detalles.
- `Transición`: La configuración de transición de la imagen. Consulte la entrada de SetDefaultTransition() a continuación para obtener más detalles.
- `EncryptionAlgorithm`: El algoritmo de cifrado de archivos. Actualmente las opciones son "AesCtr" y "AesCtrHmac".
- `Clave de cifrado`: La clave para descifrar el archivo de imagen. Esta es una matriz de bytes compuesta por 128 bits de clave, seguidos de 128 bits de IV.

Consulte la descripción de [Descifrado de imágenes](docId\:z65qEZ0xwq9C70OBEgcYI) en la entrada de *roImagePlayer* para obtener detalles sobre cómo mostrar imágenes cifradas.

### PreloadFile(image\_filename As String) As Boolean

Carga el archivo de imagen especificado en un búfer de memoria fuera de pantalla.

### PreloadFile(parameters As roAssociativeArray) As Boolean

Carga un archivo de imagen en un búfer de memoria fuera de pantalla. Las propiedades de visualización de la imagen están determinadas por una matriz asociativa de parámetros:

- `Nombre de archivo`: El nombre del archivo de imagen
- `Modo`: Consulte la entrada de SetDefaultMode() a continuación para obtener más detalles.
- `Transición`: Consulte la entrada de SetDefaultTransition() a continuación para obtener más detalles.

### DisplayPreload() As Boolean

Usa el búfer de memoria en pantalla para mostrar la imagen almacenada en el búfer de memoria fuera de pantalla usando `PreloadFile()`. Solo hay dos búferes de memoria: uno se muestra en pantalla y el otro se usa para precargar imágenes. `PreloadFile()` se puede llamar varias veces antes de que `DisplayPreload()` sea llamado, y continuará cargando en el mismo búfer fuera de pantalla. El método `DisplayFile()` llama a `PreloadFile()` seguido inmediatamente por `DisplayPreload()`, por lo que cualquier imagen precargada previamente se perderá. Si no hay ninguna imagen precargada, `DisplayPreload()` no tendrá ningún efecto.

### StopDisplay() As Boolean

Elimina una imagen de la pantalla.

### DisplayFileEx(filename As String, mode As Integer, x As Integer, y As Integer) As Boolean

### PreloadFileEx(filename As String, mode As Integer, x As Integer, y As Integer) As Boolean

### SetDefaultMode(mode As Integer) As Boolean

Establece el modo predeterminado de visualización de imágenes para DisplayFile() y PreloadFile(). Si no se llama a SetDefaultMode(), entonces el modo predeterminado se establece en 0 (equivalente a que la imagen esté centrada sin escalado). Los modos de visualización compatibles se enumeran a continuación:

- **0 – Centrar imagen**: No se realiza ningún escalado. El recorte solo se produce si la imagen es más grande que la ventana.
- **1 – Escalar para ajustar**: La imagen se escala para que sea completamente visible, manteniendo su relación de aspecto.
- **2 – Escalar para rellenar y recortar**: La imagen se escala para que rellene completamente la ventana, manteniendo su relación de aspecto.
- **3 – Escalar para rellenar**: La imagen se estira para que rellene la ventana y toda la imagen sea visible. La relación de aspecto no se mantendrá si es diferente de la ventana.

### SetDefaultTransition(transition As Integer) As Boolean

Establece la transición que se utilizará cuando se muestre la siguiente imagen. Están disponibles las siguientes transiciones:

- 0: Sin transición: blit inmediato
- 1-4: Barridos desde arriba, abajo, izquierda o derecha.
- 5-8: Explosiones desde el centro, la parte superior izquierda, la parte superior derecha, la parte inferior izquierda o la parte inferior derecha.
- 10-11: Utiliza un efecto de persiana veneciana vertical u horizontal.
- 12-13: Peines verticales u horizontales.
- 14: Se desvanece hasta el color de fondo y luego vuelve a aparecer.
- 15: Se desvanece entre la imagen actual y la nueva imagen.
- 16-19: Deslizamientos desde arriba, abajo, izquierda o derecha.
- 20-23: Desliza toda la pantalla desde arriba, abajo, izquierda o derecha.
- 24-25: Escala la imagen anterior hacia dentro y luego la nueva hacia fuera nuevamente (esto funciona como una pseudorrotación alrededor de un eje vertical u horizontal).
- 26-29: Expande una nueva imagen en la pantalla desde la derecha, izquierda, abajo o arriba

### SetTransform(transform As String) As Boolean

Aplica una de ocho transformaciones a la imagen. Las llamadas a este método solo tienen efecto cuando se muestra el siguiente archivo. Tenga en cuenta que el rectángulo de la imagen en sí no cambia para acomodar la nueva relación entre altura y ancho de una imagen transformada. Este método puede llamarse por separado en múltiples instancias de *roImagePlayer* o *roImageWidget* .

- `identidad`: Sin transformación (comportamiento predeterminado)
- `rot90`: Rotación de 90 grados en sentido horario
- `rot180`: Rotación de 180 grados
- `rot270`: Rotación de 270 grados en sentido horario
- `espejo`: Transformación de espejo horizontal
- `mirror_rot90`: Rotación en espejo de 90 grados en sentido horario
- `mirror_rot180`: Rotación en espejo de 180 grados en sentido horario
- `mirror_rot270`: Rotación en espejo de 270 grados en sentido horario

### OverlayImage(image\_filename As String, x As Integer, y As Integer) As Boolean

Compone la imagen con el nombre de archivo especificado encima de la imagen principal de `DisplayFile()` . Utilice los enteros `x` e `y` para especificar su ubicación dentro del widget de imagen.

### SetRectangle(r As roRectangle) As Boolean

Cambia el tamaño y la posición del rectángulo de la imagen utilizando el objeto *roRectangle* pasado.

### GetRectangle() As roRectangle

Devuelve un objeto *roRectangle* que tiene la misma ubicación y dimensiones que el objeto *roRectangle* utilizado para definir la ventana de imagen.

### CreateTestHole(hole As roRectangle) As Boolean

Crea un agujero en la imagen con la ubicación y dimensiones especificadas en la instancia de *roRectangle* pasada. Cualquier ventana de video ubicada directamente debajo de la imagen será visible a través de ella. Este método interrumpirá la reproducción de imágenes y debe utilizarse solo con fines de prueba.

### SetTransitionDuration(duration As Integer) As Boolean

Establece la cantidad de tiempo que tarda (en milisegundos) en producirse un efecto de transición especificado. La duración predeterminada de la transición es de 1000 milisegundos.

### DisplayBuffer(a As Object, b As Integer, c As Integer) As Boolean

### Hide() As Boolean

Oculta la imagen que se está mostrando actualmente mediante la instancia de *roImageWidget* .

### Show() As Boolean

Muestra la imagen que se está mostrando actualmente mediante la instancia de *roImageWidget* .

## Imágenes multipantalla

Este objeto incluye métodos sobrecargados `PreloadFile()` y `DisplayFile()` . Estos métodos reciben un objeto *roAssociativeArray* que almacena varias opciones que se pasarán. Deben utilizarse al mostrar imágenes en varias pantallas de una matriz, o al mostrar una parte de una imagen, aunque también pueden utilizarse en lugar de las llamadas al método original en todos los casos.

El siguiente código utiliza el método `PreloadFile()` para una visualización multipantalla:

```text
i=CreateObject("roImageWidget")
a=CreateObject("roAssociativeArray")
a["Filename"] = "test.jpg"
a["Mode"] = 1
a["Transition"] = 14
a["MultiscreenWidth"] = 3
a["MultiscreenHeight"] = 2
a["MultiscreenX"] = 0
a["MultiscreenY"] = 0
i.PreloadFile(a)
i.DisplayPreload
```

Los valores de `nombre de archivo`, `modo`, y `transición` son los mismos que los documentados para los métodos `DisplayFile()` y `PreloadFile()` anteriores. Los parámetros `AnchoMultiventana` y `AlturaMultiventana` especifican el ancho y la altura de la matriz multipantalla. Por ejemplo, 3x2 serían tres pantallas de ancho y dos pantallas de alto. `MultiscreenX` y `MultiscreenY` especifican la posición de la pantalla actual dentro de esa matriz.

En el caso anterior, en promedio solo se dibuja 1/6 de la imagen en cada pantalla, aunque el modo de imagen sigue aplicándose, por lo que, dependiendo de la forma de la imagen, puede tener barras negras en las pantallas laterales. Por lo tanto, es relativamente sencillo que un widget de imagen muestre parte de una imagen según su posición en la matriz multipantalla. Los siguientes son valores predeterminados para los parámetros:

- Mode = 0
- Transition = 0
- MultiscreenWidth = 1
- MultiscreenHeight = 1
- MultiscreenX = 0
- MultiscreenY = 0

Este código utiliza `DisplayFile()` para mostrar una parte de una imagen:

```text
i=CreateObject("roImageWidget")
a=CreateObject("roAssociativeArray")
a["Filename"] = "test.JPG"
a["Mode"] = 0
a["MultiscreenX"] = 600
a["MultiscreenY"] = 600
a["MultiscreenWidth"] = 400
a["MultiscreenHeight"] = 400
i.DisplayFile(a)
```

Esto muestra solo una parte de la imagen test JPG comenzando en las coordenadas `SourceX`, `SourceY`, y con un tamaño de `Ancho de origen` por `Altura de origen` . El `viewmode` sigue respetándose como si estuviera mostrando el archivo completo.
