正在查看 13 个帖子:1-13 (共 13 个帖子)
  • 作者
    帖子
  • @42705 回复

    白木
    游客

    首先新建一个文本文件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导致,只要后期裁剪一下就可以了。

     

    @42707 回复

    白木
    游客

    以上代码是直接来自于官方文档的。yaml具体使用方法,可以参考官方教程:

    github.com/lovas...L-dezoomer

    Dezoomify软件,如何使用,也可以参考官方文档:

    github.com/lovas...zoomify-rs

    之前是一点看不懂代码啥意思,但是参考官方文档后,好歹多少能够理解一点。虽然是英文的。看起来比较费力一些。

    参照官方给出的标准代码,复制粘贴,出错率会比较少。

    @42709 回复

    未曾
    管理员

    @白木 #42707

    如果是要下北京故宮的图的建议参看此帖
    new.shuge.org/meet/topic/15543/

    @42750 回复

    白木
    游客

    使用这个方法,最后的图像,测试多回,左边和上边,都会留有黑色宽条。

    尝试了很多办法,想直接通过dezoomify一次性下载拼成功都失败了。

    具体什么原因一直没有找到。

    但最后还是能够有效解决,那就是把新合成的图片,用Image Magick裁剪。

    代码如下:

    magick convert 1.jpg -gravity southeast -crop 7815x8135+0+0 t.jpg

    在原始图1.jpg上截取右下角距离下边缘0个像素,右边缘0个像素一块7815*8135大小的图片。

     

    至此,通过dezoomify和Image Magick两个软件搭配使用。

    就完成了一整幅图片的下载、拼图、裁剪全过程。

     

    但是不同的站点,具体方案和遇到的问题是不一样的。仅供参考。

    @42752 回复

    正音悉达
    游客

    有黑条

    是因为yaml里面定义图片宽度和高度的参数不对

    dezoomify是非常机械的,要是你的参数大于实际大小就会这样,没请求到的图片碎片就是黑色的

    @42820 回复

    白木
    游客

    @正音悉达 #42752

    那有没有办法,直接修改yaml文件,下载拼图直接一步到位没有黑条呢?

    我做了几次尝试,尝试修改x_template和y_template参数,但是都失败了。

    甚至尝试过,只下载和拼256*256的碎片块,但结果拼出来左边和上边,仍然是有黑条。

    @49045 回复

    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个碎片不合成

    不知是不是命令里可以进一步设置 英文水平有限 官方说明里没有找到解决方法

    @49052 回复

    墨雲
    游客

    @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

    @49053 回复

    墨雲
    游客

    啊对了,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

    @49057 回复

    鸿雁
    游客

    看不懂,你们讨论的这个256碎片,如是北京故宫的话,这方法已经落伍了,还是老师的最新的方法是可靠可行最简洁方法,就是建立一个标签参数做为探寻地址和高宽数,写一个dzi来,用曾老师反复提到的最新的链接路线,名画记这样的就很简单了。如是其它的网站搞书籍什么的我没有试过,大部分应该是254,256,512这几样的碎片。我喜欢书法中国画的长卷,用老师的方法是没有这些问题的,在弗利尔,克利夫兰,大都会,哈佛图书錧用过,没有出现大家用的方法,我也看不懂啊。如是批量咱不知道了

    @49060 回复

    KIM
    游客

    @墨雲 #49052

    非常感谢 用此方法成功将大图分段合成了

    再次感谢!

    @49062 回复

    山远天高
    游客

    关键是台北故宫的书画,用这个方法有效吗?有试过、并成功的朋友吗?

    @49065 回复

    墨雲
    游客

    @山远天高 #49062

    台北故宫这个不是关键,关键是能成功缓存图片

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

上传图片

拖拽或点击选择图片

回复至:下载拼图一步到位教程,自写 yaml 文本
您的信息:



初次发帖前:建议先阅读