2016-12-04 1 views
0

다음 코드는 uiimageview에서 사진과 디스플레이를 가져옵니다. pitcure 전체 uiimageview 채 웁니다. 어떻게 저장 한 이미지가 모든 화면이되지 않도록 이미지를 더 작게 만들 수 있습니까? 찍은 사진 주위에 경계선이 있기를 바랍니다. 직사각형의 경계. 감사.uiimage picker 컨트롤러에서 이미지 크기를 변경하는 방법

@IBAction func Camera(_ sender: AnyObject) { 

    if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.camera){ 
     let imagePicker = UIImagePickerController() 
     imagePicker.delegate = self 
     imagePicker.sourceType = UIImagePickerControllerSourceType.camera; 
     imagePicker.allowsEditing = false 
     self.present(imagePicker, animated: true, completion: nil)}} 

      func imagePickerController(_ picker: UIImagePickerController, didFinishPickingImage image: UIImage!, editingInfo: [NSObject: AnyObject]!){ 
       cameraScreen.image = image 
       self.dismiss(animated: true, completion: nil); 
       screenView = UIImageView() 

       screenView.frame = CGRect(x:0, y: 0, width: self.view.frame.width, height: self.view.frame.height) 





       UIGraphicsBeginImageContext(self.cameraScreen.frame.size) 
       self.view.drawHierarchy(in: self.view.frame, afterScreenUpdates: true) 



} 
+0

에 Kirti Parghi의 대답은 당신이 이미지 피커 완료 핸들러에서 가져온 이미지 크기를 조정 하시겠습니까? –

답변

1

여기는 didFinishPickingImage 완료 핸들러에서 호출해야하는 한 가지 방법입니다.

func resizeImage(image: UIImage, newWidth: CGFloat) -> UIImage { 

    let scale = newWidth/image.size.width 
    let newHeight = image.size.height * scale 
    UIGraphicsBeginImageContext(CGSizeMake(newWidth, newHeight)) 
    image.drawInRect(CGRectMake(0, 0, newWidth, newHeight)) 
    let newImage = UIGraphicsGetImageFromCurrentImageContext() 
    UIGraphicsEndImageContext() 

    return newImage 
} 

이 방법을 사용하면 이미지 크기가 변경됩니다.

+0

CGSize Swift 3에서 사용할 수 없습니다. –

+0

didFinishPickingImage 완료 핸들러는 어떻게 작성합니까? 이 정확한 func imagePickerController (선택기 : UIImagePickerController, didFinishPickingMediaWithInfo 정보 : [문자열 : AnyObject]) { if pickedImage = info [UIImagePickerControllerOriginalImage] as? 있는 UIImage { dismissViewControllerAnimated (사실, 완료 : {self.customFunction (pickedImage)}) } 다른 { dismissViewControllerAnimated (사실, 완료 : 무기 호) } }. –

0

업데이트 스위프트 3

func resizeImage(image: UIImage, newWidth: CGFloat) -> UIImage? { 

    let scale = newWidth/image.size.width 
    let newHeight = image.size.height * scale 
    UIGraphicsBeginImageContext(CGSize(width: newWidth, height: newHeight)) 
    image.draw(in: CGRect(x: 0, y: 0, width: newWidth, height: newHeight)) 
    let newImage = UIGraphicsGetImageFromCurrentImageContext() 
    UIGraphicsEndImageContext() 

    return newImage 
} 
관련 문제