kitoko552.memo

kitoko552のメモ

Swiftで画像を正方形に切り取る

画像から正方形を切り取りたいときがあったので、メソッドを作りました。 CGImageCreateWithImageInRectを使えば簡単に切り取ることができます。

/**
与えられたimageを正方形にして返すメソッド
横長は真ん中を正方形に切り取って返す
縦長は上から正方形に切り取って返す
    
:param: image 切り取る画像
    
:returns: 切り取り後の画像
*/
func cropImageToSquare(image: UIImage) -> UIImage? {
    if image.size.width > image.size.height {
        // 横長
        let cropCGImageRef = CGImageCreateWithImageInRect(image.CGImage, CGRectMake(image.size.width/2 - image.size.height/2, 0, image.size.height, image.size.height))
            
        return UIImage(CGImage: cropCGImageRef)
    } else if image.size.width < image.size.height {
        // 縦長
        let cropCGImageRef = CGImageCreateWithImageInRect(image.CGImage, CGRectMake(0, 0, image.size.width, image.size.width))
            
        return UIImage(CGImage: cropCGImageRef)
    } else {
        return image
    }
}