将 GIF 复制到 UIPasteboard

Copy GIF to UIPasteboard

我正在尝试将 GIF 图像复制到 swift 中的 UIPasteboard,目前它只复制图像的静态版本,当我查看文件扩展名时似乎将其转换为 PNG上传到某处。

想知道是否有人知道如何实现这一点?我发现的所有其他解决方案似乎只有在从 URL 而不是从 bundle

中的图像获取 NSData 时才有效

粘贴板上的图片属性好像不支持GIF格式。

The associated array of representation types is UIPasteboardTypeListImage, which includes types kUTTypePNG and kUTTypeJPEG.

虽然您可以使用 GIF 中的 NSData 执行此操作:

import MobileCoreServices

// ...

var image = UIImage(...)
let data = NSData(bytes: &image, length: sizeof(UIImage))
UIPasteboard.generalPasteboard().setData(data, forPasteboardType: kUTTypeGIF as String)) // com.compuserve.gif

对于遇到此问题的任何人,我设法找到了解决方案

let url: NSURL = NSBundle.mainBundle().URLForResource("\(self.imageNames[indexPath.row])", withExtension: ".gif")!
let data: NSData = NSData(contentsOfURL: url)!
UIPasteboard.generalPasteboard().setData(data, forPasteboardType: "com.compuserve.gif")

事实证明,您确实需要使用 URL 并从 URL 中提取 GIF 的 NSData

在这里,我正在获取捆绑包中 GIF 的 URL,使用图像的名称和扩展名搜索它。然后我在粘贴板和宾果中设置数据,当粘贴粘贴板的结果时我们有一个动画 GIF