【问题标题】:Control file name of UIImage send with UIActivityViewController使用 UIActivityViewController 发送的 UIImage 的控制文件名
【发布时间】:2013-03-06 22:25:56
【问题描述】:

我正在与UIActivityViewController 共享一张图片以及一个网址和一些文字。一切都很好,除了图像文件名始终是没有扩展名的“Image-1”。在某些情况下,这会导致一个大问题,例如在邮件应用程序中根本无法打开没有扩展程序的图像。

图像正在由应用程序生成并以UIImage 的形式存在。

有没有办法控制文件名并为图像添加正确的扩展名?

【问题讨论】:

    标签: ios uiimage uikit uiactivityviewcontroller


    【解决方案1】:

    如果它的应用程序生成图像(UIImage 参考),那么您可以使用以下代码:

    [mailComposer addAttachmentData: UIImagePNGRepresentation(viewImage) mimeType:@"" fileName:@"myImage.png"];
    

    我在我的项目中使用了相同的代码,可以使用UIImagePNGRepresentation() 方法创建自己的 PNG 格式图像。

    如果您需要 JPEG 图片,请使用UIImageJPEGRepresentation() 方法。然后用.jpg扩展名更改上述方法中的文件名。

    有关这两种方法的更多详细信息,请参阅UIKit Class Reference

    【讨论】:

    • 谢谢!我刚刚尝试过,它解决了邮件应用程序的问题。创建 jpeg 数据后,我将如何更改文件名? UIActivityViewController 没有类似的方法来命名附件。
    • 我的意思是在文件名属性中将扩展名更改为 jpg - [mailComposer addAttachmentData: UIImageJPEGRepresentation(viewImage,1.0f) mimeType:@"" fileName:@"myImage.jpg"];
    • 对,但是我使用UIActivityViewController 发送图像,所以我不能以这种方式手动将图像附加到邮件编辑器。
    【解决方案2】:

    我知道控制 UIImage 的文件名或编码类型的唯一方法是将其保存到设备上的文件中,然后将文件的 URL 提供给 UIActivityViewController。查看this answer 以获取可用于完成此操作的代码。这种方法有一些明显的缺点,但对于大多数应用程序来说可能已经足够了。

    【讨论】:

      猜你喜欢
      • 2019-01-13
      • 2013-03-24
      • 2014-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-27
      • 2019-01-11
      • 1970-01-01
      相关资源
      最近更新 更多