Saltar al contenido principal
Versión: v20 R4 BETA

Imagen

Un campo, variable o expresión de tipo Imagen puede ser cualquier imagen de Windows o Macintosh. En general, esto incluye toda imagen que pueda ser puesta en el portapapeles o leída desde el disco utilizando comandos 4D como READ PICTURE FILE.

4D utiliza APIs nativas para codificar (escribir) y decodificar (leer) los campos y las variables de las imágenes tanto en Windows como en macOS. Estas implementaciones dan acceso a numerosos formatos nativos, incluido el formato RAW, utilizado actualmente por las cámaras digitales.

  • en Windows, 4D utiliza WIC (Windows Imaging Component).
  • en macOS, 4D utiliza ImageIO.

WIC e ImageIO permiten el uso de metadatos en las imágenes. Dos comandos, SET PICTURE METADATA y GET PICTURE METADATA, le permiten beneficiarse de los metadatos en sus desarrollos.

Identificadores de códecs de imágenes

4D soporta de forma nativa un amplio conjunto de formatos de imagen, como .jpeg, .png o .svg.

Los formatos de imágenes reconocidos por 4D son devueltos por el comando PICTURE CODEC LIST como identificadores de códecs de imágenes. Se pueden devolver de las siguientes formas:

  • Como una extensión (por ejemplo ".gif")
  • Como un tipo MIME (por ejemplo, "image/jpeg")

La forma devuelta para cada formato dependerá de la forma en que se registre el códec a nivel del sistema operativo. Tenga en cuenta que la lista de códecs disponibles para lectura y escritura puede ser diferente, ya que los códecs de codificación pueden requerir licencias específicas.

La mayoría de los comandos de gestión de imágenes 4D pueden recibir un Codec ID como parámetro. Por lo tanto, es imperativo utilizar el ID del sistema devuelto por el comando PICTURE CODEC LIST. Los formatos de imágenes reconocidos por 4D son devueltos por el comando PICTURE CODEC LIST.

Operadores de imágenes

OperaciónSintaxisDevuelveAcción
Concatenación horizontalImagen1 + Imagen2PictureAñadir Imagen2 a la derecha de Imagen1
Concatenación verticalImagen1 / Imagen2PictureAñadir Imagen2 debajo de Imagen1
Superposición exclusivaImagen1 & Imagen2PictureSuperpone Imagen2 sobre Imagen1 (Imagen2 en primer plano). Produce el mismo resultado que COMBINE PICTURES(pict3;pict1;Superimposition;pict2)
Superposición inclusivaImagen1 | Imagen2PictureSuperpone Imagen2 sobre Imagen1 y devuelve la máscara resultante si ambas imágenes tienen el mismo tamaño. Produce el mismo resultado que $equal:=Equal pictures(Pict1;Pict2;Pict3)
Desplazamiento horizontalImagen + NúmeroPictureMover la imagen horizontalmente un Número de píxeles
Movimiento verticalImagen / NúmeroPictureMover la imagen verticalmente un Número de píxeles
RedimensionamientoImagen * NúmeroPictureRedimensiona la imagen según el porcentaje Número
Escala horizontalImagen *+ NúmeroPictureRedimensionar la imagen horizontalmente al porcentaje Número
Escala verticalImagen *| NúmeroPictureRedimensionar la imagen verticalmente al porcentaje Número

Notas:

  • Para poder utilizar el operador |, Imag1 e Imag2 deben tener exactamente la misma dimensión. Si ambas imágenes tienen un tamaño diferente, la operación Imagen1 | Imagen2 produce una imagen en blanco.
  • El comando COMBINE PICTURES puede utilizarse para superponer imágenes manteniendo las características de cada imagen fuente en la imagen resultante.
  • Se pueden realizar operaciones adicionales en las imágenes utilizando el comando TRANSFORM PICTURE.
  • No hay operadores de comparación de imágenes, sin embargo 4D propone el comando Equal picture para comparar dos imágenes.

Ejemplos

Concatenación horizontal

 circle+rectangle //Colocar el rectángulo a la derecha del círculo
rectangle+circle //Colocar el círculo a la derecha del rectángulo

Concatenación vertical

 circle+rectangle //Colocar el rectángulo debajo del círculo
rectangle+circle //Colocar el círculo debajo del rectángulo

Superposición exclusiva

Pict3:=Pict1 & Pict2 // Superponer Pict2 sobre Pict1

Superposición inclusiva

Pict3:=Pict1|Pict2 // Recupera la máscara resultante de la superposición de dos imágenes del mismo tamaño

Desplazamiento horizontal

rectangle+50 //Mover el rectángulo 50 píxeles a la derecha
rectangle-50 //Mover el rectángulo 50 píxeles a la izquierda

Movimiento vertical

rectangle/50 //Mover el rectángulo 50 píxeles hacia abajo
rectangle/-20 //Mover el rectángulo 20 píxeles hacia arriba

Redimensionamiento

rectangle*1.5 //El rectángulo se hace un 50% más grande
rectangle*0.5 //El rectángulo se hace un 50% más pequeño

Escala horizontal

circle*+3 //El círculo se hace 3 veces más ancho
circle*+0,25 //El ancho del círculo se convierte en una cuarta parte de lo que era

Escala vertical

circle*|2 //El círculo pasa a ser el doble de alto
circle*|0.25 //La altura del círculo pasa a ser un cuarto de lo que era