图像的Cygin Curl URL检索,特定范围和文件夹放置

时间:2018-04-10 16:08:14

标签: bash image curl cygwin image-stitching

我有一个我用于Cygwin的脚本,它抓取URL并将它们保存到默认文件夹。我想要做的是进一步指定和自动化,所以我不必太乱用它。

这是当前的脚本:

curl "http://ids.lib.harvard.edu/ids/view/Converter?id=[45477234-45477312]&c=jpgnocap&s=2&r=0&x=0&y=0&w=2400&h=2400" -o "#1.jpg"

这样做是将特定图像作为jpg保存在默认文件夹中的有限窗口中。 " x ="和" y ="确定此大图像(如7000x9000)图像上的第一个像素值的位置。我一直试图通过缝合将这些图像拼凑在一起。

我希望通过将x和y值递增特定量(即每次出现2400次)来自动执行此操作。我知道如何做范围,但我想增加2400(0,2400,4800,7200,9600),看起来将逗号放入方括号并不起作用。

此外,我想确保当它返回到每个网址时,它不会自行保存。我想要一组带有结尾的分组图像((0),(1)等),我可以将它们作为指南将它们放在一起。 (PS如果你知道自动化这个过程的好方法,我很乐意听到。)

我认为这个修复非常简单,但我是bash脚本的新手。非常感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

所以显而易见的方法是使用嵌套循环进行网格拼接,这是我们首先从输入(-x-y)读取max x和y坐标然后循环的示例通过可能性从0,0一直到$x_max, $y_max

一次一列
#! /bin/bash
while [[ $# -gt 0 ]]; do
    case $1 in
        -x )
            x_max=$2
            shift
            ;;
        -y )
            y_max=$2
            shift
            ;;
        * )
            echo "unknown option" && exit 2
            ;;
    esac
    shift
done
for (( xcord = xcounter = 0; xcord <= $x_max; xcord+=2400, xcounter+=1 )); do
    for (( ycord = ycounter = 0; ycord <= $y_max; ycord+=2400, ycounter+=1 )); do
        curl "http://ids.lib.harvard.edu/ids/view/Converter?id=[45477234-45477312]&c=jpgnocap&s=2&r=0&x=${xcord}&y=${ycord}&w=2400&h=2400" -o "#${xcounter}_${ycounter}.jpg"
    done
done