翼度科技»论坛 编程开发 JavaScript 查看内容

高分辨率大图像可缩放 Web 查看器的实践

7

主题

7

帖子

21

积分

新手上路

Rank: 1

积分
21
高分辨率大图像可缩放 Web 查看器的实践

一、使用 vips 将高分辨率大图像转换为 DZI


  • 安装 vips
    具体安装步骤请参考libvips Install
    注意,在 windows 11 中安装 v8.14.2 版本后,在运行vips dzsave **.jpg mydz命令时,出现 vips: unknown action "dzsave" 报错,解决办法是重装低版本 v8.14.1,因为在 v8.14.2 中 dzsave 功能被移除了,但有可能在后续版本中会添加回来
  • 安装 pyvips
    1. pip install pyvips
    复制代码
    pyvips API 参考文档:pyvips
  • 生成 DZI
    1. import osimport pyvipsvipsbin = r'F:\vips-dev-8.14\bin'add_dll_dir = getattr(os, 'add_dll_directory', None)if callable(add_dll_dir):    add_dll_dir(vipsbin)else:    os.environ['PATH'] = os.pathsep.join((vipsbin, os.environ['PATH']))current_abspath = os.path.dirname(os.path.abspath(__file__))# 打开图像image = pyvips.Image.new_from_file(os.path.join(current_abspath, 'bigimage.png'))# 生成 DZIimage.dzsave(os.path.join(current_abspath, 'mydz'),            suffix='.jpg', tile_size=512, overlap=1)
    复制代码
    dzsave 参数说明:

    • 第一个参数为 DZI 文件夹的路径,将在此处生成 DZI 文件。
    • suffix:生成的 DZI 图像文件的后缀名。
    • tile_size:DZI 图像的瓷砖大小。
    • overlap:DZI 图像的瓷砖之间的重叠区域大小。
    上述代码运行后,将在代码文件目录下生成 mydz.dzi 文件和 mydz_fils 文件夹。其中,dzsave 方法的使用请参考官方文档:pyvips.Image.dzsave

二、使用 flask 为 DZI 提供 HTTP 服务
  1. from flask import Flask, send_from_directoryapp = Flask(__name__)@app.route('/')def static_file(path):    return send_from_directory('.', path)if __name__ == '__main__':    app.run(port=8008)
复制代码
三、使用 OpenSeadragon 实现 Web 访问

关于 OpenSeadragon 的使用请参考官方文档 OpenSeadragon
  1.           Big Image Viewer                     
复制代码
查看效果:

  • 初始状态

  • 放大状态


来源:https://www.cnblogs.com/yuzhihui/p/17448525.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具