2016-08-11 3 views
1

Прежде всего, я новичок в Swift, так что извините, если я сделал что-то не так.Swift MFMailComposeViewController addAttachmentData JPG установить максимальное разрешение

Я пытаюсь отправить электронное письмо с несколькими изображениями в качестве вложений (-ов). Но я могу добавить все изображения, но они находятся в полном разрешении.

Возможно ли ограничить разрешение изображений, хранящихся в массиве UIImage? (Сейчас по электронной почте с 2-мя изображениями будет 20MB вместо 488KB)

Вот некоторые код:

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") 
Смежные вопросы