【发布时间】:2013-10-18 03:04:56
【问题描述】:
如果图像被其他应用(如照片或移动 safari)复制,有没有办法从 UIPasteboard 而不是 UIImage 获取图像的原始数据?
我目前面临 IOS 6.0 和 IOS 6.1(7.0 也是)之间的有线差异
在 IOS 6.0 中,UIPasteboard 通过照片或移动 safari 复制图像的项包含图像的原始数据。 但在 IOS 6.1 及更高版本中,它包含 UIImage 而不是原始数据。
在IOS 6.0中,复制的UIPasteboard项目如下
Printing description of array:
<__NSArrayM 0x8a804c0>(
{
"com.compuserve.gif" = <47494638 39614002 ...... 3b3a2000 3b>;
"public.url" = "url of the image....";
}
)
在 IOS 6.1 及以上版本中,它包含 UIImage 而不是原始数据。
Printing description of array:
<__NSArrayM 0xa25b7b0>(
{
"com.compuserve.gif" = "<UIImage: 0x9429570>";
"public.url" = "url of the image...";
}
)
如果该图像格式是 PNG 或 JPEG,那还不错。 (如果是 JEPG,我仍然需要再次压缩。) 但是当我尝试粘贴动画 gif 图像时,它变得更加复杂。
我什至不知道从普通 UIImage 创建动画 gif 图像是否可行。
我可以从原始网址再次下载,但我认为下载我已经拥有的数据似乎不是一个好的解决方案。 而且,如果它是从照片应用程序复制的,则没有这样的网址。 (有一些名为“com.apple.mobileslideshow.asset-object-id-uri”的神秘 uri 没有记录,而不是 url)
似乎有一种解决方法,因为当我尝试在照片和电子邮件应用程序之间执行完全相同的操作时,它可以正常工作
有什么建议吗?
【问题讨论】:
标签: ios uiimage animated-gif uipasteboard