roImageWidget
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> en HTML
Creación de objetos: el área del widget de imagen se genera usando un objeto roRectangle.
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ágenesImage Decryption 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:
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.DisplayPreloadLos 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:
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.