2016-08-11 1 views
1

まず、私はスウィフトで新しいです。スウィフトMFMailComposeViewController addAttachmentData JPGセットの最大解像度

複数の画像を添付した電子メールを送信しようとしています。しかし、私はすべての画像を追加することができますが、彼らは完全な解像度です。

UIImageアレイに保存されている画像の解像度を制限することはできますか? (現在2枚の画像を電子メールではなく、488キロバイト20メガバイトになります)

はここにいくつかのコード:

func configuredMailComposeViewController(image: [UIImage]) -> MFMailComposeViewController { 
     let mailComposerVC = MFMailComposeViewController() 
     mailComposerVC.mailComposeDelegate = self 

     var counter = 1; 
     for img in image { 
      let imageData: NSData = UIImagePNGRepresentation(img)! 
      mailComposerVC.addAttachmentData(imageData, mimeType: "image/jpeg", fileName: "image\(counter).jpg") 
      counter += 1 
     } 

     mailComposerVC.setToRecipients(["email"]) 
     mailComposerVC.setSubject("subject") 
     mailComposerVC.setMessageBody("message", isHTML: true) 

     return mailComposerVC 
    } 

とイメージがここで作成されます。

@IBAction func takePhoto(sender: UIButton) { 
     imagePicker = UIImagePickerController() 
     imagePicker.delegate = self 
     imagePicker.sourceType = .Camera 

     presentViewController(imagePicker, animated: true, completion: nil) 
} 

func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) { 
    imagePicker.dismissViewControllerAnimated(true, completion: nil) 

    var image_taken: UIImage! 
    image_taken = info[UIImagePickerControllerOriginalImage] as? UIImage 

    var image: UIImage! 
    image = image_taken 

    imageArray.append(image) 

} 


var imagePicker: UIImagePickerController! 

そして今はcreateEmailメソッドを呼び出します。

//send data to email 
@IBAction func sendDataToServer(sender: UIBarButtonItem) { 
    composeMail(imageArray) 
} 

答えて

2

圧縮を使用してサイズを小さくすることができます。

let imageData: NSData = (UIImageJPEGRepresentation(imgView.image!, 0.5) as? NSData)! 
mailComposer.addAttachmentData(imageData as Data, mimeType: "image/jpeg", fileName: "image.jpg") 
関連する問題