2015-01-31 2 views
0

Мне нужно вырезать 16 изображений из одного.
Все изображения в категории .tif format. Координаты верхних левых точек каждого изображения содержатся в текстовом файле.
Это какЦепочка контуров Imagemagick не работает хорошо

100,200 
300,400 
... 

Я использовал этот Баш код

IFS=',' 
while read x y; do 
convert image.tif -crop 262x262+$x+$y image_%02d.tif; 
done < coordinates 

И это дает мне 395 изображений остроумие h неправильных координат.
Я использую Ubuntu 14.04, Imagemagick 6.7.7
Прошу вас, помощь.

+0

Где вы открываете текстовый файл, содержащий координаты? Вы должны сначала открыть его и прочитать его по строке – Dan

ответ

1

Попробуйте это - у вас нет переменной для представления %02d в спецификаторе выходного файла.

#!/bin/bash 
i=1 
IFS=',' 
while read x y; do 
name=$(printf "image%02d.tif" $i) 
convert image.tif -crop 262x262+$x+$y "$name" 
((i++)) 
done < coordinates 

Если вы на самом деле не нужны изображения, чтобы называться image01.tif и image02.tif и image1.tif, image2.tif это нормально, вы можете просто использовать этот

#!/bin/bash 
i=1 
IFS=',' 
while read x y; do 
convert image.tif -crop 262x262+$x+$y image$i.tif 
((i++)) 
done < coordinates 
+0

Большое спасибо! –

Смежные вопросы