.net 保存base64 图片_这可能是你见过最详细的PowerBI显示图片方法综述

1f22daacb41071b9e845e1c28753df83.png

目录:

  1. PowerBI显示图片的基本方法
  2. PowerBI图片URL的准备方法
  3. PowerBI显示本地图片的方法
  4. 图片格式转换的注意事项

PowerBI显示图片的基本方法

PowerBI(以下简称PBI)可以插入单张图片,在新版界面上,如下图所示:

62dcfe2ecbbe45eb5d62af4c398f04b9.png

当然,我们更希望的是能够根据数据表显示多张图片,比如制作产品销售情况可视化的时候,一边显示产品图片,一边显示销售数量。有两个常用的控件可以实现这个效果。一个是原生默认的表格控件,一个是第三方的CardBrowser控件。要显示图片,只需增加一个图片URL的字段即可。URL,通俗来讲就是网址。拖入表格之前,需要把该字段的属性设置为图片URL。如下图所示:

e24c750333cd3eab41b844c2aa7a33f0.png

f567833c682c75170c14576a0e7ac5bb.png

PowerBI图片URL的准备方法

那么,图片URL从哪里获取?假如你所需要的图片,在网上有现成的,那么只需要选中图片,右键,复制链接,即可获得图片的URL。至于批量获得多图的URL,则需要用到爬虫技术。下面推荐一款很适用的插件——Chrome浏览器上的Fatkun Batch Download Image。该插件可以批量从网上下载图片,既可以保存图片文件,也可以导出图片URL。

8a2b81bdd1a2d055cc358c29e88ddfa2.png

下一个问题是,假如我需要显示的图片,网站上没有怎么办?那就要用到图床。图床,是专门储存图片的网上空间。知乎上有人总结了一些常见的图床(盘点国内免费好用的图床 https://zhuanlan.zhihu.com/p/35270383),如七牛云、又拍云等。上传完后可以获得图片URL。

上传专门图床网站有如下几点不足:

1. 大部分需要注册账号,大家日常账号已经够多了,可能会嫌麻烦。

2. 图床网站允许你单次批量上传的图片数量比较少,一般是10张,应付不了大批量图片。

3. 图床网站的稳定性问题,既包括他家服务器能否稳定地输出,也包括他们业务能否长期存在。

解决上述三个问题的一个好办法是,把图片上传到QQ空间的相册(或者其他类似的地方)。再用Fatkun插件导出URL。而且,即使qq空间相册设置非所有人可见,URL依然可以访问。

PowerBI显示本地图片的方法

通过URL来显示图片,好处是不需要把图片存储到PBI文件里,减轻文件大小。不足的地方也有,那就是:

1. 需要联网情况下才能显示,且需要确保你和图床服务器的网速都够快。

2. 万一网上图片不存在了,则无法显示。

因此,显示本地图片,或者说把图片数据导入PBI文件也是有必要的(尽管会增加PBI文件容量)。

正常情况下,图片无法导入PBI。但只需要把图片转成base64字符串,就可以导入了。单张图片转换字符串,可通过一些网站实现。比如这个:https://codebeautify.org/image-to-base64-converter。批量转换可在PBI里用M语言实现。M语言里有个Binary.ToText() 函数可以实现将内容转为base64。详细做法可参考微软MVP Gerhard Brueckl的这篇博客:

https://blog.gbrueckl.at/2018/01/storing-images-powerbi-analysis-services-data-models/

下面贴出核心代码:

1. 把URL转为base64的代码:

let
    UrlToImage = (ImageUrl as text) as text =>
let
    BinaryContent = Web.Contents(ImageUrl), //这里是获取图片URL内容,下一行代码转换
    Base64 = "data:image/jpeg;base64, " & Binary.ToText(BinaryContent, BinaryEncoding.Base64) 
in
    Base64
in
    UrlToImage

2. 把本地文件转为base的代码:

let
    源=Folder.Files("D:Pic") //这里写本地图片所在文件夹
    Base64 = Table.AddColumn(源,"Base64",each "data:image/jpeg;base64, " & Binary.ToText([Content], BinaryEncoding.Base64)
in
    Base64

完整操作过程这里不再截图赘述,英文阅读不顺畅的同学可以了解这篇中文博客:https://www.shangyouw.cn/wenjian/arc29300.html

进阶的可以看这篇英文博客:

https://blog.crossjoin.co.uk/2019/05/19/storing-large-images-in-power-bi-datasets/

图片格式转换注意事项

第一点需要说明的是,本地图片转化base64,对图片大小是有要求的。图片太大,将导致显示不全,像这样只显示了一半:

164c784db73e211888cbea7a2bfdaa7b.png

PBI论坛有人提到,经过多次测试发现图片但凡超过25k,就会显示不全。详见此链接和截图。https://community.powerbi.com/t5/Desktop/Image-Visualisation-not-showing-the-full-picture/m-p/495999#M231268

5016dc3dda55509879298f9e1b3e5381.png

第二点需要说明的是,转换出来的base64,是一个非常长的字符串。如果你用了上文提到的网站转换单张图片,得到的字符串最好不要粘贴到excel里,而是粘贴到txt或者csv或者直接pbi里面。因为excel单个单元格对字符数量的大小限制是32,767个,对于base64而言,很大概率会超出限制,导致图片显示不出来。

最后,假如你既不想把图片上传到网站上,又嫌在PQ里用M语言处理本地图片转化的学习成本有点高,也不会批量把图片控制在25kb以下,怎么办?下期,我将推出一个自己开发的免安装小软件,帮你一键批量改变图片大小并转化base64格式。敬请期待。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值