2016-09-03 2 views
8

나는 이미지를 가져 와서 이미지의 중앙에있는 사각형을 제외한 모든 것을 잘라내는 앱을 작성하고 있습니다. (SWIFT) 작물 기능을 작동시키지 못합니다. 이것은 내가 지금 가지고있는 것입니다 :스위프트에서 UIImage 자르기와 관련된 문제

func cropImageToBars(image: UIImage) -> UIImage { 
    let crop = CGRectMake(0, 200, image.size.width, 50) 

    let cgImage = CGImageCreateWithImageInRect(image.CGImage, crop) 
    let result: UIImage = UIImage(CGImage: cgImage!, scale: 0, orientation: image.imageOrientation) 

    UIImageWriteToSavedPhotosAlbum(result, self, nil, nil) 

    return result 
    } 

많은 가이드를 보았지만 그 중 아무 것도 나를 위해 작동하지 않는 것 같습니다. 이미지가 90도 회전하는 경우가 있는데 왜 그런지 모르겠습니다.

+0

시작. 질문하기 전에이 사이트에서 유용한 정보를 확인하십시오. http://stackoverflow.com/questions/158914/cropping-an-uiimage/29294333#29294333 – pedrouan

+0

비슷한 질문입니다.하지만 Objective-C가 아닌 Swift에서 문제가 있습니다. – mawnch

+0

그리고 신속한 솔루션도 많이 있습니다. 이것은 최고로 보입니다. http://stackoverflow.com/a/30403863/661022 – pedrouan

답변

15

확장 프로그램을 사용하려면 파일, 시작 부분 또는 끝 부분에 추가하기 만하면됩니다. 이러한 코드에 대한 추가 파일을 만들 수 있습니다.

화상의 중앙부의 작물 3.0

extension UIImage { 
    func crop(rect: CGRect) -> UIImage { 
     var rect = rect 
     rect.origin.x*=self.scale 
     rect.origin.y*=self.scale 
     rect.size.width*=self.scale 
     rect.size.height*=self.scale 

     let imageRef = self.cgImage!.cropping(to: rect) 
     let image = UIImage(cgImage: imageRef!, scale: self.scale, orientation: self.imageOrientation) 
     return image 
    } 
} 


let myImage = UIImage(named: "Name") 
myImage?.crop(rect: CGRect(x: 0, y: 0, width: 50, height: 50)) 

스위프트 : 오버플 스택

let imageWidth = 100.0 
let imageHeight = 100.0 
let width = 50.0 
let height = 50.0 
let origin = CGPoint(x: (imageWidth - width)/2, y: (imageHeight - height)/2) 
let size = CGSize(width: width, height: height) 

myImage?.crop(rect: CGRect(origin: origin, size: size)) 
+0

예를 최신 Swift 3.0에 게시했습니다. 이전 버전에서 작업하는 경우, 복사 붙여 넣기에는 약간의 수정이 필요합니다. – pedrouan

+0

자르기가 효과가있는 것 같지만 실제로 원하는 이미지의 부분을 잘라낼 수 없습니다. 예를 들어, 인수 (50, 50,500,500)는 화면의 오른쪽 상단에서 이미지의 일부를 반환합니다. 이는 나에게 의미가 없습니다. 화면 중간에 직사각형 (일종의 http://imgur.com/a/vOMsb)을 원하면 사각형 인수는 무엇입니까? – mawnch

+0

@ KaviRamamurthy 내 대답을 업데이트했습니다. – pedrouan