mjfulke
Power BI tiene varias opciones para mostrar imágenes en un informe o tablero, pero en su mayoría requieren que la imagen sea una URL de un sitio web de acceso público. Lo que le mostraré en esta publicación es una forma de tomar imágenes almacenadas en una base de datos y vincularlas a una tabla de visualización. Esto funcionará con muchas imágenes que muestran imágenes. Mi caso de uso fue mostrar imágenes de gráficos generadas a partir de R usando el servidor de aprendizaje automático de SQL Server
@Meagan Longoria recientemente me presentó un gran artículo de @SQLJason Incrustación de imágenes en Power BI usando Base64. Esto me dio toda la información que necesitaba para buscar una solución para vincular datos de imagen almacenados en una tabla de SQL Server.
Definitivamente lea el artículo de SqlJason, prestando mucha atención a las limitaciones, etc. Esta solución está diseñada para imágenes relativamente pequeñas que mostraría en un informe. Si lo usa para imágenes grandes, es probable que falle. Reducir la resolución en esos casos.
Obtener imágenes en SQL Server
Vaya a su SQL Server favorito y cree una tabla e inserte algunas imágenes. Aquí está mi código de muestra para darle una forma en que puede obtener imágenes en una tabla de base de datos
--CREATE Table Logo --( -- LogoId int, -- LogoName varchar(255), -- LogoImage image --) INSERT INTO dbo.Logo ( LogoId, LogoName, LogoImage ) SELECT 1,'Power BI', * FROM OPENROWSET ( BULK 'C:UsersmeDesktopLogoDemopowerbi.png',SINGLE_CLOB) as ImageFile INSERT INTO dbo.Logo ( LogoId, LogoName, LogoImage ) SELECT 2,'Azure', * FROM OPENROWSET ( BULK 'C:UsersmeDesktopLogoDemoazure.png',SINGLE_CLOB) as ImageFile INSERT INTO dbo.Logo ( LogoId, LogoName, LogoImage ) SELECT 3,'Microsoft', * FROM OPENROWSET ( BULK 'C:UsersmeDesktopLogoDemomicrosoft.png',SINGLE_CLOB) as ImageFile
Obtenga los datos de la imagen con Power BI Desktop
Ahora que tiene algunas imágenes en una tabla SQL, cambie a Power BI Desktop y obtenga los datos.
(En el escritorio: obtener datos, servidor SQL, iniciar sesión en su servidor SQL y elegir la tabla que almacena imágenes.
Cambie la columna binaria a Texto
Ahora cree una columna personalizada y agregue un URI para indicarle a Power BI que son imágenes png. Si usa jpeg, use jpeg en lugar de png.
Cerrar y aplicar los datos.
Este es un paso importante. En la pestaña Modelado, cambie la columna de la imagen ([Logo]) a una categoría de datos de URL de imagen.
Ahora puede usar elementos visuales, como una tabla, y mostrar sus imágenes que provienen de un servidor SQL en lugar de tener que encontrar una manera de almacenar imágenes en un sitio público de Internet.
Espero que esto funcione para usted como lo hizo para mí.
mjfulke
En respuesta a nrsleight
Sí tu puedes. Consulte este artículo https://blog.gbrueckl.at/2018/01/storing-images-powerbi-analysis-services-data-models/
gabrielvigo
¡Hola a todos!
Seguí todos los pasos.
Pero tengo problemas con las imágenes que subo (de PowerApps a SQL) con el celular, como foto.
Subí algunos como png desde la PC y esos se ven.
Las imágenes JPEG no están completamente cargadas.
administrador_xlsior
Hola tios,
¿Alguien ha probado alguna vez o sabe cómo hacerlo con Direct Query?
Intenté importar y funciona, pero cuando se trata de Consulta directa, ya que necesita cambiar el tipo de datos en la columna, no está permitido a menos que lo cambie a Importar.
¿Alguien sabe cómo?
Gracias
neish
En respuesta a administrador_xlsior
@admin_xlsior No estoy seguro de si todavía tiene este problema, pero lo que encontré es que acabo de crear un Veiw dentro de mi SQL DB y usé Json para convertir las imágenes de bianary a Base64Jpeg. Simplemente extraería las imágenes de la vista que creó, pero tengo un problema con las imágenes que son demasiado grandes para que Power BI las represente.
CREAR VER TNIPIC_VER COMO
SELECCIONAR VOLVER
DESDE ABRIRJSON(
(
SELECCIONE CUSTOMER_ID, ATRÁS, CHECKED_IN
DESDE (SELECCIONE DBO. SU BASE DE DATOS COMO ATRÁS) T
Para JSON automático
)
)CON (VOLVER VARCHAR(MAX))
cymorg
¿Es posible usar imágenes almacenadas como datos binarios – varbinary (max) – almacenadas en SQL Server?
mjfulke
En respuesta a cymorg
La longitud de los datos codificados debe ser inferior a 32766 caracteres.
bernier
Intenté todos los pasos establecidos aquí, pero no funcionó. Todo lo que veo son las URL o los símbolos de «imagen rota». Pensando que podría ser un problema de tamaño de imagen, reduje las imágenes a menos de 100K y todavía no me gustó. Revisé el foro de Ideas y este se presentó por primera vez hace más de TRES AÑOS sin respuesta de Microsoft. ¿Por qué tenemos que tomar imágenes internas que se encuentran en tablas y exportarlas a un servidor de archivos y luego vincularlas para mostrarlas en un informe interno? Es más que ridículo.
andy_scott42
En respuesta a bernier
Descubrí que la longitud máxima que Power BI puede tener para procesar una cadena es de 32766 caracteres.
Entonces, una vez que haya convertido su imagen a una cadena Base64, si la longitud de la cadena es mayor que esto, recortará la imagen.
administrador_xlsior
En respuesta a andy_scott42
Hola, probé el mismo paso y conté que el carácter es 1024, pero aún se muestra como una imagen rota. Mi imagen es png.
Sin embargo, al observar la longitud del carácter, no estoy seguro de si es correcto o si de alguna manera durante la conversión a texto se trunca. porque bastante raro que todos en la misma longitud.
mjfulke
En respuesta a administrador_xlsior
Parece que la longitud del tipo de datos que está utilizando termina en 1024. Mire varchar (max)
administrador_xlsior
En respuesta a mjfulke
Lo siento, lo copié a Excel y uso la función Len, no estoy seguro de por qué me da ese 1024.
Pero agrego una columna calculada directamente en Power BI en la misma tabla, resulta que me da lo que creo que es la longitud correcta.
Se muestra alguna variación de longitud, pero no excede 32677, pero no me muestra la imagen en lugar de un ícono de imagen rota.
Pensando en rendirme también. 😞
cymorg
En respuesta a administrador_xlsior
Renuncié a esto porque necesito una resolución grande/alta. imágenes Un enfoque alternativo fue escribir las imágenes en temp. archivos en el disco e inserte un enlace a estos en mi conjunto de datos. Parece que PowerBI solo admite imágenes de tipo icono pequeño listas para usar. Así es la vida.
DNickell
En respuesta a andy_scott42
andy_scott42 parece haberlo clavado. Si podrá o no utilizar las técnicas de este artículo dependerá del tamaño de sus imágenes (en píxeles) y del nivel de detalle.
En la captura de pantalla a continuación… la que probablemente imitaré para mi trabajo es la #3. Usando Snagit, tomo la imagen y la cambio de tamaño a algo menor o igual a 100×100 píxeles. Luego cambio el tamaño del lienzo a 105×105 píxeles para darle un borde. No espero necesitar nada que se muestre en mis visualizaciones que sea más grande que eso.
#1 es pequeño y de baja resolución. Es demasiado borroso y poco atractivo dada la aplicación de color de 4 bits.
#2 es pequeño y como resultado – borroso
#3 funcionará bien (ver descripción arriba). Sus 9 KB (muy por debajo de los 32 KB mencionados como límite)
#4 es una imagen grande con solo 16 colores. El color reducido funciona en su mayor parte, pero eso puede no ser válido para otras imágenes.
#5 ilustra lo que le puede pasar a una imagen de más de 32kb
Por lo tanto, piense qué tan grandes deben ser realmente sus imágenes para sus informes/paneles. Formatear con antelación. Si, con el tamaño de imagen de destino, aún tiene más de 32 KB, considere reducir la resolución o el color.
lunds007
En respuesta a andy_scott42
¡Me encontré con el mismo problema! fotos recortadas ¿Alguien ha encontrado una solución genial para esto todavía?
syale
¿Hay un límite de tamaño para el png?
mjfulke
En respuesta a syale
Hay un límite. Nada documentados pero tienen que ser «más pequeños». Probé con un jpg de 3 MB y no se pudo renderizar.
andy_scott42
En respuesta a mjfulke
Estoy usando este método para mostrar imágenes en una tabla y algunas de las imágenes se están recortando. ¿Se debe a que el tamaño de la imagen es demasiado grande?
nrsleight
¿Podrías hacer algo similar con SSAS?
mjfulke
En respuesta a nrsleight
Sí tu puedes. Consulte este artículo https://blog.gbrueckl.at/2018/01/storing-images-powerbi-analysis-services-data-models/