正在查看 8 个帖子:1-8 (共 8 个帖子)
  • 作者
    帖子
  • @25902 回复 ⚑举报 

    Fdr
    游客

    Dezoomify-rs进阶-配合yaml下载

     

    适用:在找不到现成的xml或json文件的情况下,就可以自制yaml文件下载。

     

    相关贴子:https://www.shuge.org/meet/topic/2042/

     

    yaml代码:

    url_template: "https://shuziwenwu-1259446244.cos.ap-beijing.myqcloud.com/relic/6839c7a486174dda97c7211e50ff949a/image-bundle/15/{{x/254}}_{{y/254}}.jpg"

     

    variables:

    - name: x

    from: 0

    to: 31676 # Image width, taken from stage 1

    step: 254 # Tile width, taken from stage 1

     

    - name: y

    from: 0

    to: 2160 # Image height

    step: 254 # Tile height

     

    headers:

    Referer: "https://digicol.dpm.org.cn"

     

    注意点:

    1,YAML 大小写敏感;

    2,使用缩进代表层级关系;

    3,缩进只能使用空格,不能使用 TAB,不要求空格个数,只需要相同层级左对齐(一般 2 个或 4 个空格)

     

    新建一个txt文件,然后把以上代码拷贝进去,然后另存为tiles.yaml。

    以后就可以在这个基础上修改参数即可。

     

    下载时的命令行指令:

    dezoomify-rs -l “tiles.yaml” “image.jpg”

    注意:是英文字母l,而不是数字1。

    一定要使用tiles.yaml的名称。

    下载的文件名可以自己写,但是后缀,如果文件特别大,建议使用tiff或png,而不是jpg。

     

    再来逐步解释一下yaml文件中的几个参数,以及如何获得这些参数。

    先要明白原理,yaml是一个配置文件,整个下载高清图的原理就是拼图,程序把每个小文件都下载下来,最后拼成一个大图。就是这样的原理。

    所以作为拼图程序来讲,必须要得到具体每个切片图片的下载地址,才能进行下载,而yaml也正是解决这个问题。

     

    url_template: "https://shuziwenwu-1259446244.cos.ap-beijing.myqcloud.com/relic/6839c7a486174dda97c7211e50ff949a/image-bundle/15/{{x/254}}_{{y/254}}.jpg"

     

    这里是切片图片下载地址的模板。这个地址的取得,通过Chrome开发者模式去取得这些小图。然后就可以得到具体某个小图的下载地址。但是原小图最后部分是比如0_0.jpg,0_1.jpg这样的。所以要通过算法得到这样的文件名。

    还要注意,在此之前,有15,15这里称为放大系数。如何得到这个15呢。就是在浏览的时候,把图像放大到最大,这个时候所得到的地址,如果这里是15就代表放大系数是15。这样可以取得最高清晰度的图。

     

    这里的254代表什么意思呢,代表的就是一个小拼图的宽或者是高。

    建议结合拼图去理解这个东西,原理是一样的。

     

    后面的代码,width和height就是最终整个拼图的长和宽。step代表的步长,就是每个最小的拼图切片的长或宽。

    程序会自动加上去,然后最终得到比如0_0,0_1这样的,然后把这些拼图切片下载齐全再拼在一块儿。

    Referer: "https://digicol.dpm.org.cn"

    这里填的网址,就是这个图片的网站网址。

     

    主要的难点就在于得到这些参数。因为具体每个网站,这些环节都是不一样的。所以要自己想办法得到想要的参数。

    一般的办法,仍然是通过Chrome浏览器的开发者模式,去得到这些想要的参数。

     

    理解原理是非常重要的,懂了原理以后,才可以适用于各种不同的情况。

    如果不明白原理的话,换一个新的网站,马上就蒙了。

     

     

     

    @25903 回复 ⚑举报 

    Fdr
    游客

    需要下载的图像地址:

    digicol.dpm.org.cn/cultu...c3dbfaad58

    @25905 回复 ⚑举报 

    木吉他
    游客

    求您的联系方式!

    @25909 回复 ⚑举报 

    Fdr
    游客

    yaml文件,要保证在格式上不出问题,请直接到https://www.shuge.org/meet/topic/2042/,找到@6139这一楼。

    这里的格式是最标准的。新建一个tiles.txt文件后,把代码块这段全部复制粘贴进去,最后把文件名修改成tiles.yaml就可以了。

    这样就可以得到一个标准的yaml模板了。在此模板上进行参数的修改,以保证tiles.yaml格式是没有问题的。

    @25910 回复 ⚑举报 

    Fdr
    游客

    图像各个参数的取得方法。

    方法原贴:https://www.shuge.org/meet/topic/15543/#post-16727

    请直接参看原贴,原贴的格式排版比较好。

     

    可以使用下面的方法获取相关图片参数

    首先,添加以下代码为 chrome 书签(其它类似)

    1,进入书签管理(快捷键是 ctrl+shift+o)
    chrome://bookmarks/

    名称随意,网址为以下参数

    javascript:document.getElementsByTagName("body").innerHTML = JSON.stringify(viewer.source.Image);
    2,进入故宫名画记的任意一个藏品浏览页面,如
    minghuaji.dpm.org.cn/paint...gfttf0od7l

    点击书签中的:显示名画记参数(或你自定义的名字)

    页面将解密相关参数

    {"xmlns":"http://schemas.microsoft.com/deepzoom/2009","Url":"https://minghuaji-1259446244.cos.ap-beijing.myqcloud.com/bundle/pljw9md37m1r3svpmriy03gfttf0od7l/","Overlap":"1","TileSize":"254","Format":"png","Size":{"Width":"50068.0","Height":"3756.0"}}
    最后,根据参数自定义 tiles.yaml

    @25916 回复 ⚑举报 

    Fdr
    游客

    根据参数自定义tiles.yaml的方法。

    举例:https://digicol.dpm.org.cn/cultural/detail?id=52d8831084314b299d8d30c3dbfaad58

    (这里主要是要通过举例,学习背后的思路和方法)

    通过上面的书签方法,得到的参数:

    {"xmlns":"http://schemas.microsoft.com/deepzoom/2009","Url":"https://shuziwenwu-1259446244.cos.ap-beijing.myqcloud.com/relic/7cd8e6cc88dc4ea1bec695b35f9d3366/image-bundle/","Overlap":"1","TileSize":"510","Format":"png","Size":{"Width":"31674.0","Height":"2160.0"}}

    这里关键是url_temple这一栏怎么填写。

    这里需要使用Chrome打开https://digicol.dpm.org.cn/cultural/details?id=70958 ,然后进入开发者模式,F12或者CTRL+ALT+I,如果快捷键不能使用,就按右上角三个竖点,更多工具,开发者工具。

    依次选择Network,Img。

    并把图像放大到最大。这个时候随便选择一个小的切片图片,并复制地址。右击Copy,Copy link address。

    此时得到比如:

    shuziwenwu-1259446244.cos.ap-beijing.myqcloud.com/relic...5/43_2.png

    这里15,就是放大系数,不需要修改的,你只需要在之前,把图像放大到最大,他自然就会是15的。后面是不是看到43_2?这个是随便的,也许你的可能是3_1这都可以。这里需要修改成:{{x/510}}_{{y/510}}。510就是上面的TileSize。

    而headers那里,则是填写要下载的网站的域名地址。

    所以最终整个yaml就是:

    url_template: "https://shuziwenwu-1259446244.cos.ap-beijing.myqcloud.com/relic/7cd8e6cc88dc4ea1bec695b35f9d3366/image-bundle/15/{{x/510}}_{{y/510}}.png"

    variables:
    - name: x
    from: 0
    to: 31674 # Width
    step: 510 # TileSize

    - name: y
    from: 0
    to: 2160 # Height
    step: 510 # TileSize

    headers:
    Referer: "https://digicol.dpm.org.cn"

    以上代码经过测试,成功。

    @26002 回复 ⚑举报 

    未曾
    管理员

    @Fdr #25916

    可以使用这个方法代替,简化操作。
    www.shuge.org/meet/...post-25911

    @122668 回复 ⚑举报 

    yankee
    游客

    Dezoomify-rs最新版哪位大侠能分享一份。下不到软件

正在查看 8 个帖子:1-8 (共 8 个帖子)
正在查看 8 个帖子:1-8 (共 8 个帖子)

上传图片

拖拽或点击选择图片(最多五张)

回复至:Dezoomify-rs进阶-配合yaml下载
您的信息:



发帖/回帖前,请了解相关版规

1,不要开书单。单个帖子尽量发布一种书籍需求。
2,在搜索不到相关主题的情况下,尽量发新帖(发帖标题最好带上书名)。不要在他人帖子中回复某种书籍需要。
3,发帖提问标题尽量简单明了。发帖内容不要太过简略,请对书籍内容、版本或作者作简要说明。
4,出版于1973年以后的资源需求或分享将会被清理删除。