Importar imágenes a Power BI

La única forma por defecto que tiene Power BI para mostrar imágenes es a partir de algún campo de una tabla que contenga una URL que apunte a la imagen a mostrar, es decir la imagen debe estar online en un servidor externo. Esto trae algunos inconvenientes: no es posible visualizar la imagen si trabajamos con Desktop y sin conexión a internet, y si alguna vez desaparece esa imagen en el servidor, la perderemos y no se mostrará en los informes.

Lo ideal sería que Power BI importara las imágenes incorporándolas al modelo de datos, pero no lo hace, aunque con un pequeño truco es posible llevarlo a cabo, al menos con imágenes de un tamaño moderado. En diciembre tanto Gerhard Brueckl como Jason Thomas propusieron una solución simple que consiste en disponer de las imágenes originales en una carpeta, una URL o en un campo binario de SQL, importar la referencia al modelo de datos, convertirlas en formato binario en el caso de la URL y pasar su contenido a texto anteponiéndoles el texto “data:image/jpeg;base64, ” para que Power BI las reconozca como tal.

Para facilitar la tarea crearon tres funciones que se encargan de los pasos necesarios según convenga.

Desde una URL

Pero mejor lo mostraremos con un ejemplo paso por paso. Partimos de unas pocas imágenes accesibles en línea. Creamos una tabla en Power Query mediante “Especificar datos” y escribimos los datos necesarios, en nuestro caso hemos creado una tabla denominada “Frutas” con dos columnas: nombre y URL.

Añadimos un paso más creando una nueva columna, lo hacemos mediante “Columna personalizada”, ponemos por nombre “Binario” y en la fórmula escribimos

Web.Contents([URL])

En este paso es habitual que pida confirmar las credenciales, que en este caso son las que muestra por defecto, es decir acceso anónimo.

El aspecto de la tabla, por el momento deberá ser el de la imagen siguiente

 

Ahora crearemos una nueva columna denominada “Imagen” con la opción de “Columna personalizada” convirtiendo el campo binario a un texto en Base64 y anteponiéndole el texto “data:image/jpeg;base64, “.

"data:image/jpeg;base64, " & Binary.ToText([Binario], BinaryEncoding.Base64)
 Solo queda un par de simples pasos para que las imágenes sean utilizables.

  • Aplicamos los cambios en Power Query
  • En Power BI seleccionamos el campo “Imagen” y le indicamos en “Categoría de datos” dentro de “Modelado” que es “Dirección URL de la imagen”.

Ahora ya podemos utilizar las imágenes, por ejemplo en una tabla:


En la entrada de Gerhard Brueckl disponéis de las funciones que facilitan posteriores informes, así como un archivo PBIX de ejemplo.

Desde una carpeta

También podemos importar las imágenes directamente de una carpeta. Para ello nos vamos a “Nuevo origen”, escogemos “Carpeta”.

Seleccionamos la carpeta donde tenemos las imágenes

Y en el paso siguiente presionamos “Editar”

La columna con la imagen (en formato binario) se denomina por defecto “Content”, opcionalmente modificaremos la tabla eliminando columnas, renombrando campos y eliminando el texto “.png” del campo nombre hasta dejarla como la de la imagen.

En este punto ya disponemos de los pasos anteriores para poder conseguir la imagen tal como deseamos. Añadimos una “Columna personalizada” y la llamamos “Imagen” con la fórmula

 "data:image/jpeg;base64, " & Binary.ToText([Binario], BinaryEncoding.Base64)

Y ya disponemos de las imágenes importadas a Power BI.

SVG

SVG es un formato abierto de imágenes vectoriales. Se trata de archivos de texto que mediante el uso de etiquetas definen una imagen. Por ejemplo para definir un círculo basta con escribir algo como

<circle cx=”106″ cy=”437″ r=”15″/>

La ventaja de este formato es que podemos determinar el tamaño de la imagen sin perder un ápice de calidad. Además, para la imágenes de uso general el resultado es un archivo de tamaño contenido. Este tipo de imágenes se pueden crear con multitud de editores, aunque Inkscape es de libre uso y recomendable para iniciarse. Existen algunas librerías libres de derechos por internet en formato SVG, por ejemplo la de Open Iconic con un par de cientos de pequeños iconos.

Power BI no puede usar directamente este tipo de imágenes aunque podemos recurrir al visual “HTML Viewer” disponible gratuitamente en la Office Store.

Los pasos requeridos para poder utilizar en HTML Viewer las imágenes en SVG es parecido a lo visto anteriormente con alguna diferencia.

En la última columna agregada, cuando definimos el campo imagen, debemos cambiar la fórmula por esta

Text.FromBinary([Binario], BinaryEncoding.Base64)

David Eldersveld publicó un artículo recientemente sobre esto donde también nos sugiere el modo de cambiar algunas de las propiedades de las imágenes (tamaño, colores) desde Power Query.

NOTA

Los datos de las imágenes se insertan en un campo de texto, y los campos de texto en Power BI/Power Query tienen una limitación de 268.435.456 carácteres o 536.870.912 bytes por lo que no es apto para imágenes muy grandes.

 

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *