ios - Swift MFMailComposeViewController addAttachmentData JPG 设置最大分辨率

标签 ios swift ios9

首先,我是 Swift 的新手,如果我做错了什么,我深表歉意。

我尝试发送包含多个图像作为附件的电子邮件。但我可以添加所有图像,但它们是全分辨率的。

是否可以限制存储在 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)
}

最佳答案

您可以使用压缩来减小其大小:

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

关于ios - Swift MFMailComposeViewController addAttachmentData JPG 设置最大分辨率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38904684/

相关文章:

ios - 动画完成后执行任务(在 iOS 中)

swift - SDWebImage,在indexPath.row中获取url图像

ios - Storyboard xcode 9.2 示例中需要恢复 id

ios - 在不影响 View 内容的情况下更改导航栏项目内容

swift - 拖动和重新排序 - 带部分的 UICollectionview

facebook-login - Facebook 登录不会返回到使用 Xcode 7 iOS 9 的应用程序

ios - 发布 iOS-Kiosk App 后 Facebook 注销

ios - map 套件位置图像

ios - 在 UICollectionViewCell 上双击手势?

swift - Realm 对象属性丢失了它的值,但在打印整个对象时我可以看到它