rewrote the whole image handling functions to rely on ImageMagick via imagick PHP extension. This allows for sane cropping and resizing, depending on orientation. The CSS aligns the slides on the bottom of the containing div, so variations in height won't cause unexpected jumping. The slideshow container has a maximum height which ensures a steady player position – the only variable thing is the margin between the image top and content before the slideshow.
TODO: Centering of portrait images does not work yet.