【问题标题】:Can CGImage created from file be null从文件创建的CGImage可以为空吗
【发布时间】:2016-08-18 07:33:27
【问题描述】:

如果 UIImage 是从文件或包创建的,image.CGImage 是否可以返回 null

UIImage image = UIImage.FromFile(name);
// or
UIImage image = UIImage.FromBundle(name);
// image.CGImage == null?

【问题讨论】:

    标签: ios xamarin.ios uiimage cgimage


    【解决方案1】:

    一般来说,如果UIImage 不是null,那么CGImage 也将不是null。在少数情况下,情况并非如此 (explained in this answer),但这不适用于您正在使用的方法。

    如果找不到指定的图像,UIImage 本身可以是null(因此UIImage.CGImage 也将是null) - 正如您从文档中看到的那样,返回将是nilnull 在 C# 中)。这适用于这两种方法。

    FromBundle 绑定到 imageNamed: - docs here

    FromFile 绑定到 imageWithContentsOfFile: - docs here

    【讨论】:

      【解决方案2】:

      感谢@BytesGuy 的帮助。正如他所说,UIImage.FromFileUIImage.FromBundle 不能返回 UIImagenull CGImage

      对他的回答进行一些更正:

      UIImage 本身可以是null(因此UIImage.CGImage 也可以是null

      这不是真的,如果UIImagenullUIImage.CGImage 将抛出NullReferenceException(不会返回null)。

      同样在 Xamarin.iOS 中,如果 UIImage 已被处置,则可以获取 null CGImage

      UIImage image = UIImage.FromFile(name);
      image.Dispose();
      // now image.CGImage is null
      

      【讨论】:

        猜你喜欢
        • 2022-11-29
        • 2015-11-29
        • 2011-10-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-12
        相关资源
        最近更新 更多