从文件创建的CGImage可以为空吗

Posted

技术标签:

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

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

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

【问题讨论】:

【参考方案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

【讨论】:

以上是关于从文件创建的CGImage可以为空吗的主要内容,如果未能解决你的问题,请参考以下文章

mongo 非主键 objectid 可以为空吗

zabbix取值若是取到了空值,会报警吗?zabbix允许返回值为空吗

从 CGImage 生成 CCITT 压缩的 TIFF

从 UIView 子类创建 CGImage

外键可以为空吗? [复制]

在Java中使用for循环,我必须指定不为空吗?