将 GIF 复制到 UIPasteboard
Copy GIF to UIPasteboard
我正在尝试将 GIF 图像复制到 swift 中的 UIPasteboard,目前它只复制图像的静态版本,当我查看文件扩展名时似乎将其转换为 PNG上传到某处。
想知道是否有人知道如何实现这一点?我发现的所有其他解决方案似乎只有在从 URL 而不是从 bundle
中的图像获取 NSData 时才有效
粘贴板上的图片属性好像不支持GIF格式。
虽然您可以使用 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
我正在尝试将 GIF 图像复制到 swift 中的 UIPasteboard,目前它只复制图像的静态版本,当我查看文件扩展名时似乎将其转换为 PNG上传到某处。
想知道是否有人知道如何实现这一点?我发现的所有其他解决方案似乎只有在从 URL 而不是从 bundle
中的图像获取 NSData 时才有效粘贴板上的图片属性好像不支持GIF格式。
虽然您可以使用 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