static PatchworkImage mergePatchworkImagesVertically(L> images, O... _) {
if (empty(images)) null;
optPar int spacing = imageMergeSpacing();
int h = intSum(mapMethod h(images))+(l(images)-1)*spacing;
int w = intMax(mapMethod w(images));
PatchworkImage out = new(w, h);
int y = 0;
for (img : images) {
int x = (w-img.w())/2;
for (patch : img.patches)
out.addPatch(patch.image,
x+patch.bounds.x, y+patch.bounds.y, patch.userValue);
y += img.h() + spacing;
}
ret out;
}