共享我编辑的 UIImage 时 UIActivityViewController 崩溃,但适用于 UIImage(named:)
UIActivityViewController crashes when sharing an UIImage I edited, but works with UIImage(named:)
我正在使用以下代码将两张图片合二为一
func combineImages() {
//reset tent image
self.tempImageView.image = self.selectedTent
let size = CGSize(width: self.tempImageView.image!.size.width, height: self.tentImageView.image!.size.height)
UIGraphicsBeginImageContext(size)
let areaSize = CGRect(x: 0, y: 0, width: size.width, height: size.height)
if let selected = self.selectedBackground {
selected.scaleImageToSize(newSize: CGSize(width: areaSize.width, height: areaSize.height)).draw(in: areaSize)
}
self.tempImageView.image!.draw(in: areaSize, blendMode: CGBlendMode.normal, alpha: 0.8)
self.combinedImage = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()
self.tempImageView.image = combinedImage
}
如果我尝试使用 UIAcitivityViewController 共享此组合图像,则会弹出共享 sheet,但是当我 select 一个应用程序(例如 Slack)时,图像预览需要一段时间才能加载,该图像未显示在预览中,几秒钟后共享弹出窗口 window 刚刚关闭。这是我用来分享的代码
if let imageToShare = self.combinedImage {
let imageToShareArray = [ imageToShare ]
let activityViewController = UIActivityViewController(activityItems: imageToShareArray, applicationActivities: nil)
activityViewController.popoverPresentationController?.sourceView = view
// present the view controller
self.present(activityViewController, animated: true, completion: nil)
}
如果我使用 UIImage(named:) 而不是使用我的 combinedImage 对象创建图像,它一切正常并且我能够共享。
当我使用我想要的图像时,我在 XCode
的输出 window 中也看到了这个错误
2018-09-04 10:45:28.219428-0600 MyApp[7393:4245932] [Common] _BSMachError: port 13817; (os/kern) invalid capability (0x14) "Unable to insert COPY_SEND"
如有任何帮助,我们将不胜感激。
首先尝试将新图像转换为数据:
if let imageToShare = self.combinedImage, let dataImage = UIImageJPEGRepresentation(imageToShare, 0.8) {
let imageToShareArray = [dataImage]
let activityViewController = UIActivityViewController(activityItems: imageToShareArray, applicationActivities: nil)
activityViewController.popoverPresentationController?.sourceView = view
// present the view controller
self.present(activityViewController, animated: true, completion: nil)
}
我正在使用以下代码将两张图片合二为一
func combineImages() {
//reset tent image
self.tempImageView.image = self.selectedTent
let size = CGSize(width: self.tempImageView.image!.size.width, height: self.tentImageView.image!.size.height)
UIGraphicsBeginImageContext(size)
let areaSize = CGRect(x: 0, y: 0, width: size.width, height: size.height)
if let selected = self.selectedBackground {
selected.scaleImageToSize(newSize: CGSize(width: areaSize.width, height: areaSize.height)).draw(in: areaSize)
}
self.tempImageView.image!.draw(in: areaSize, blendMode: CGBlendMode.normal, alpha: 0.8)
self.combinedImage = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()
self.tempImageView.image = combinedImage
}
如果我尝试使用 UIAcitivityViewController 共享此组合图像,则会弹出共享 sheet,但是当我 select 一个应用程序(例如 Slack)时,图像预览需要一段时间才能加载,该图像未显示在预览中,几秒钟后共享弹出窗口 window 刚刚关闭。这是我用来分享的代码
if let imageToShare = self.combinedImage {
let imageToShareArray = [ imageToShare ]
let activityViewController = UIActivityViewController(activityItems: imageToShareArray, applicationActivities: nil)
activityViewController.popoverPresentationController?.sourceView = view
// present the view controller
self.present(activityViewController, animated: true, completion: nil)
}
如果我使用 UIImage(named:) 而不是使用我的 combinedImage 对象创建图像,它一切正常并且我能够共享。
当我使用我想要的图像时,我在 XCode
的输出 window 中也看到了这个错误2018-09-04 10:45:28.219428-0600 MyApp[7393:4245932] [Common] _BSMachError: port 13817; (os/kern) invalid capability (0x14) "Unable to insert COPY_SEND"
如有任何帮助,我们将不胜感激。
首先尝试将新图像转换为数据:
if let imageToShare = self.combinedImage, let dataImage = UIImageJPEGRepresentation(imageToShare, 0.8) {
let imageToShareArray = [dataImage]
let activityViewController = UIActivityViewController(activityItems: imageToShareArray, applicationActivities: nil)
activityViewController.popoverPresentationController?.sourceView = view
// present the view controller
self.present(activityViewController, animated: true, completion: nil)
}