iOS
Swift

UIImageの短辺を指定した長さでリサイズする

extension UIImage {

    func resize(length : CGFloat) -> UIImage {

        let shortLength = min(self.size.width, self.size.height)

        if shortLength <= length {
            return self
        }

        let ratio = length / shortLength

        let resizedSize = CGSize(width: (self.size.width * ratio), height: (self.size.height * ratio))

        UIGraphicsBeginImageContextWithOptions(resizedSize, false, 1)
        draw(in: CGRect(x: 0, y: 0, width: resizedSize.width, height: resizedSize.height))
        let resizedImage = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()

        return resizedImage!
    }
}

地味に注意する点は UIGraphicsBeginImageContextWithOptions(resizedSize, false, 1)の部分の第三引数です。
scaleを指定する(2倍なら2を3倍なら3を指定すると言った具合です)のですが、0を指定すると画面のサイズ(2xや3x)などに合わせてリサイズしてくれます。
指定したサイズきっかりでリサイズしたい場合は1を指定しないと地味にハマるので気をつけて下さい。