- 作者帖子
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浏览器的开发者模式,去得到这些想要的参数。
理解原理是非常重要的,懂了原理以后,才可以适用于各种不同的情况。
如果不明白原理的话,换一个新的网站,马上就蒙了。
Fdr游客需要下载的图像地址:
木吉他游客求您的联系方式!
Fdr游客yaml文件,要保证在格式上不出问题,请直接到https://www.shuge.org/meet/topic/2042/,找到@6139这一楼。
这里的格式是最标准的。新建一个tiles.txt文件后,把代码块这段全部复制粘贴进去,最后把文件名修改成tiles.yaml就可以了。
这样就可以得到一个标准的yaml模板了。在此模板上进行参数的修改,以保证tiles.yaml格式是没有问题的。
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
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 # TileSizeheaders:
Referer: "https://digicol.dpm.org.cn"以上代码经过测试,成功。
未曾管理员@Fdr #25916
可以使用这个方法代替,简化操作。
www.shuge.org/meet/...post-25911
yankee游客Dezoomify-rs最新版哪位大侠能分享一份。下不到软件
- 作者帖子
正在查看 8 个帖子:1-8 (共 8 个帖子)
正在查看 8 个帖子:1-8 (共 8 个帖子)
正在查看 8 个帖子:1-8 (共 8 个帖子)