网站首页 > 开源技术 正文
前言
接了个项目,需要将病理细胞图片svs格式的图片显示在前端页面上。找遍网络,有不可行的,有可行但却有bug的。在此整理份完整可行的方案,供大家参考。
细胞图片长这样:
此类svs图片一般大小在几百兆到几个G之间,着实很大,浏览器无法加载。pc一般是通过桌面软件加载查看的。
解决方案
解决方案有两种常见的方案:
openslide
此方案这里不在赘述,我测试过,加载了一个300多兆的svs图,运行时直接崩了。因为过程繁琐,太耗内存,就此作罢。感兴趣的同学可以自行实验。官网地址在此: OpenSlide
libvips
此方案是我们这次要用到的。通过安装此库文件,把svs转换后即可显示。
开干吧!
1.安装 pyvips
pip install pyvips
注意 :如果这时候直接这样写代码
import pyvips
这样是会报错的。
以上是windows的报错,linux也会有相似的报错。这是因为没有加载 libgobject 库文件。
2. 加载 libgobject 库文件
linux系统很简单:
sudo apt install libvips
windows系统就复杂点了
下载一个库文件 vips-dev
下载地址:https://github.com/libvips/build-win64-mxe/releases
我下载的是 v8.14.3版本
下载完后解压
找到你的python安装目录,或虚拟环境的目录,打开这个目录:
我是虚拟目录,所以在venv目录里。然后打开 _init_.py文件,在开头添加如下代码
import logging
import os
# =========在这里添加如下代码(vipshome地址是上面解压的文件所在的路径)========
vipshome = r'D:\PycharmProjects\njzl\install_package\vips-dev-8.14\bin'
os.environ['PATH'] = vipshome + ';' + os.environ['PATH']
#=======结束=======
import sys
import atexit
logger = logging.getLogger(__name__)
# user code can override this null handler
logger.addHandler(logging.NullHandler())
保存后在看下,是不不报错了
3. 开始写代码了
# 加载svs
img = pyvips.Image.new_from_file('static/files/1.svs', access='sequential')
# 生成dzi文件
img.dzsave('static/files/2')
加载svs文件,然后生成 dzi 文件。
dzi 文件是类似地图的瓦片文件,就是按层级分割成不同大小的图片,然后组合成一张大图。文件像下面这样:
2_files 如下:
这样的文件,前端是可以加载显示的。
4.前端如何加载
前端vue 安装导入 openseadragon 库文件,然后加载远程dzi文件地址,就可以显示了。
前端代码不再这里追溯。参考文档:DZI Tile Source | OpenSeadragon
猜你喜欢
- 2024-12-19 MySQL + Keepalived 双主热备搭建
- 2024-12-19 IT大佬推荐!Github上10个有用、有趣的C语言开源项目,推荐收藏
- 2024-12-19 python 你需要知道的 你知道python吗
- 2024-08-03 Keepalived+Nginx高可用配置(nginx高可用方案)
- 2024-08-03 Word、PDF、PPT三种软件间的自由互换不再愁
- 2024-08-03 Node.js实现将文字与图片合成技巧
- 2024-08-03 go语言图片处理库:使用简单且功能强大,imaging
- 2024-08-03 pyvips,一个神奇的 Python 库!(pypl python)
你 发表评论:
欢迎- 05-16东契奇:DFS训练时喷了我很多垃圾话 我不懂他为什么比赛不这么干
- 05-16这两球很伤!詹姆斯空篮拉杆不中 DFS接里夫斯传球空接也没放进
- 05-16湖人自媒体调查:89%球迷希望DFS回归79%希望詹姆斯回归
- 05-16Shams:湖人得到全能球员DFS 节省了1500万奢侈税&薪金空间更灵活
- 05-16G5湖人胜率更高!詹姆斯不满判罚,DFS谈5人打满下半场:这很艰难
- 05-16DFS:当东契奇进入状态 所有防守者在他面前都像个圆锥桶
- 05-16上一场9中6!DFS:不能让纳兹-里德这样的球员那么轻松地投三分
- 05-16WIDER FACE评测结果出炉:滴滴人脸检测DFS算法获世界第一
- 最近发表
-
- 东契奇:DFS训练时喷了我很多垃圾话 我不懂他为什么比赛不这么干
- 这两球很伤!詹姆斯空篮拉杆不中 DFS接里夫斯传球空接也没放进
- 湖人自媒体调查:89%球迷希望DFS回归79%希望詹姆斯回归
- Shams:湖人得到全能球员DFS 节省了1500万奢侈税&薪金空间更灵活
- G5湖人胜率更高!詹姆斯不满判罚,DFS谈5人打满下半场:这很艰难
- DFS:当东契奇进入状态 所有防守者在他面前都像个圆锥桶
- 上一场9中6!DFS:不能让纳兹-里德这样的球员那么轻松地投三分
- WIDER FACE评测结果出炉:滴滴人脸检测DFS算法获世界第一
- 湖人自媒体调查:89%球迷希望DFS回归 79%希望詹姆斯回归
- 一觉醒来湖人苦盼的纯3D终于到位 DFS能带给紫金军多少帮助
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)