Ну, как вариант, взять часть принципа разрезатора, т.е. выставляем количество равных частей допустим по горизонтали, для примера возьмем 3, ну и программа будет заполнять картинку по порядку по 3 в горизонтальном ряду, переходя ниже после заполнения первого ряда и тд. А определять порядок можно и в ручную, например, файлы с одинаковым названием с порядковым номером на конце, будут обозначать один и тот же файл, чтобы программа понимала, что куда тыкать. для удобства, как вариант, можно взять окончания виндосовской нумерации. Когда ты называешь много файлов одним именем, виндовс добавляет в окончание (Х) где Х порядковый номер, собственно добавить распознание этого Х в окончании, это и будет определять порядок соединения. Я видел подобный принцип в некоторых программках, только там можно было задавать какое окончание программа будет распознавать.