- 作者帖子
白木游客首先新建一个文本文件tiles.txt,输入以下代码:
url_template: "example.com/my_image/ {{x}}_{{y}}.jpg"
x_template: "x * tile_size"
y_template: "y * tile_size"
variables:
- { name: x, from: 0, to: 2 } # Number of tiles on the x axis
- { name: y, from: 0, to: 3 } # Number of tiles on the y axis
- { name: tile_size, value: 256 }
headers:
Referer: "example.com/ "上面加粗的部分,就是需要根据实际情况修改的部分。
example.com/my_image/ {{x}}_{{y}}.jpg。这部分,需要找到需要下载的碎片图片的源URL地址。
后面的,2和3,就是碎片的横向和纵向分别数字是多少。
而256,是否需要修改,也要看具体情况,一般情况是保留256。
最后Referer:部分,http://example.com/,要修改成那个网页的前面的网址。
保存后,把这个tiles.txt后缀改为tiles.yaml
然后cmd命令行输入:
dezoomify-rs tiles.yaml result.jpg
就可以正常下载了。
这是我遇到的一个图片下载问题,最后最快速的一个解决方法。
但美中不足的是,碎片最末的tiles并不是256,导致拼图完成后,有黑块。其实导致这一点的原因,就是碎片大部分是256,但最后一个碎片的步长,并不是正好256导致,只要后期裁剪一下就可以了。
白木游客以上代码是直接来自于官方文档的。yaml具体使用方法,可以参考官方教程:
Dezoomify软件,如何使用,也可以参考官方文档:
之前是一点看不懂代码啥意思,但是参考官方文档后,好歹多少能够理解一点。虽然是英文的。看起来比较费力一些。
参照官方给出的标准代码,复制粘贴,出错率会比较少。
未曾管理员@白木 #42707
如果是要下北京故宮的图的建议参看此帖
www.shuge.org/meet/topic/15543/
白木游客使用这个方法,最后的图像,测试多回,左边和上边,都会留有黑色宽条。
尝试了很多办法,想直接通过dezoomify一次性下载拼成功都失败了。
具体什么原因一直没有找到。
但最后还是能够有效解决,那就是把新合成的图片,用Image Magick裁剪。
代码如下:
magick convert 1.jpg -gravity southeast -crop 7815x8135+0+0 t.jpg
在原始图1.jpg上截取右下角距离下边缘0个像素,右边缘0个像素一块7815*8135大小的图片。
至此,通过dezoomify和Image Magick两个软件搭配使用。
就完成了一整幅图片的下载、拼图、裁剪全过程。
但是不同的站点,具体方案和遇到的问题是不一样的。仅供参考。
正音悉达游客有黑条
是因为yaml里面定义图片宽度和高度的参数不对
dezoomify是非常机械的,要是你的参数大于实际大小就会这样,没请求到的图片碎片就是黑色的
白木游客@正音悉达 #42752
那有没有办法,直接修改yaml文件,下载拼图直接一步到位没有黑条呢?
我做了几次尝试,尝试修改x_template和y_template参数,但是都失败了。
甚至尝试过,只下载和拼256*256的碎片块,但结果拼出来左边和上边,仍然是有黑条。
KIM游客不知楼主解决没有这个问题
我也一直被这个问题困扰
有时需要合成超大图的时候 需要分段去合成 自定义tiles.yaml 时 看使用说明确实有设置 从哪个坐标下载 如下
- { name: x, from: 50, to: 209} # Image width, in tiles
- { name: y, from: 50, to: 23} # Image height, in tiles
- { name: tile_size, value: 254 }程序运行后 缓存里确实是 只下载设置范围内的图块,但是最终合成的时候却是从坐标x=0 y=0 开始合成的
这样导致左上角50个碎片范围显示黑色 右下角50个碎片不合成
不知是不是命令里可以进一步设置 英文水平有限 官方说明里没有找到解决方法
墨雲游客@KIM #49045
在最开头的
url_template: "example.com/my_image/ {{x}}_{{y}}.jpg"
变成
url_template: "example.com/my_image/ {{x+50}}_{{y+50}}.jpg"
{{}}里就是个加减运算,这个只是个大概写法,详细还得看网页来定
下面仍是从0开始
- { name: x, from: 0, to: 209} # Image width, in tiles
- { name: y, from: 0, to: 23} # Image height, in tiles
墨雲游客啊对了,to后面的数要减去50变成,否则会变成后面那段黑
- { name: x, from: 0, to: 159-50} # Image width, in tiles
- { name: y, from: 0, to: 23-50} # Image height, in tiles这里填计算完成后的数,不能小于0
鸿雁游客看不懂,你们讨论的这个256碎片,如是北京故宫的话,这方法已经落伍了,还是老师的最新的方法是可靠可行最简洁方法,就是建立一个标签参数做为探寻地址和高宽数,写一个dzi来,用曾老师反复提到的最新的链接路线,名画记这样的就很简单了。如是其它的网站搞书籍什么的我没有试过,大部分应该是254,256,512这几样的碎片。我喜欢书法中国画的长卷,用老师的方法是没有这些问题的,在弗利尔,克利夫兰,大都会,哈佛图书錧用过,没有出现大家用的方法,我也看不懂啊。如是批量咱不知道了
KIM游客
山远天高游客关键是台北故宫的书画,用这个方法有效吗?有试过、并成功的朋友吗?
墨雲游客@山远天高 #49062
台北故宫这个不是关键,关键是能成功缓存图片
下载症候群游客@白木 #42705
请问:如果已经下载碎片到本地,如何修改yaml文件?
下载症候群游客成功了!
url_template: "G:/pintu/tiles/{{x}}_{{y}}.jpg"
x_template: "x * tile_size"
y_template: "y * tile_size"variables:
- { name: x, from: 0, to: 9 }
- { name: y, from: 0, to: 11 }
- { name: tile_size, value: 512 }
下载症候群游客@下载症候群 #90138
dezoomify-rs tiles.yaml xxxx.jpg
- 作者帖子
正在查看 16 个帖子:1-16 (共 16 个帖子)
正在查看 16 个帖子:1-16 (共 16 个帖子)
正在查看 16 个帖子:1-16 (共 16 个帖子)