Ios 在MonoTouch中从CoreGraphics加载图像资源

Ios 在MonoTouch中从CoreGraphics加载图像资源,ios,ios4,xamarin.ios,core-graphics,Ios,Ios4,Xamarin.ios,Core Graphics,是否可以使用MonoTouch从CoreGraphics加载图像资源 如果是,怎么做 我在MonoTouch框架中找不到任何可以让我这样做的东西 仅供参考,我希望用CoreGraphics而不是CoreImage来实现这一点。我希望我的应用程序与iOS4+兼容,因此任何考虑到这一点的方法都是可以接受的 仅供参考,我已经有了我需要的资产对象。我只需要将其转换为用户可以在屏幕上看到的内容。以下是如何使用CGDataProvider将.PNG加载到CGImage中,然后从中初始化UIImage(类似于

是否可以使用MonoTouch从CoreGraphics加载图像资源

如果是,怎么做

我在MonoTouch框架中找不到任何可以让我这样做的东西

仅供参考,我希望用CoreGraphics而不是CoreImage来实现这一点。我希望我的应用程序与iOS4+兼容,因此任何考虑到这一点的方法都是可以接受的


仅供参考,我已经有了我需要的资产对象。我只需要将其转换为用户可以在屏幕上看到的内容。

以下是如何使用
CGDataProvider
将.PNG加载到
CGImage
中,然后从中初始化
UIImage
(类似于您之前关于CoreImage的问题)


如果您有JPEG图像(或根据URL文件扩展名自动调整),则可以使用
FromJPEG
方法。

以下是如何使用
CGDataProvider
将.PNG加载到
CGImage
中,然后从中初始化
UIImage
(类似于您之前关于CoreImage的问题)


如果您有JPEG图像(或根据URL文件扩展名自动调整),则可以使用
FromJPEG
方法。

从CoreGraphics加载资产是什么意思?什么样的资产?来自何处?存储在“已保存的照片”媒体文件夹中的图像,我已经拥有该文件夹的资源url。@userXXX Easy。明显地我已经有了资产。我需要把它变成一个图像对象,我可以添加到视图中,这样用户就可以看到它。我已经知道如何获取资产对象本身,并且已经完成了这项工作。这是最简单的部分。在我的第一条评论中,我指出我已经有了资产url。@userXXX哦,我明白了,对不起。在这种情况下,您可能需要开始。您所说的“从CoreGraphics加载资产”是什么意思?什么样的资产?来自何处?存储在“已保存的照片”媒体文件夹中的图像,我已经拥有该文件夹的资源url。@userXXX Easy。明显地我已经有了资产。我需要把它变成一个图像对象,我可以添加到视图中,这样用户就可以看到它。我已经知道如何获取资产对象本身,并且已经完成了这项工作。这是最简单的部分。在我的第一条评论中,我指出我已经有了资产url。@userXXX哦,我明白了,对不起。在这种情况下,可能会启动。这将从资源加载文件。我需要从资源URL加载。错误,它将从URL加载图像。URL是从MainBundle的资源位置构建的-但是
CGDataProvider
没有意识到这一点(例如,它可能来自地球上的web服务器,而不是设备本身)。因此,您是说使用这样的资产URL并使用您的其余代码,它应该可以工作吗?字符串文件=()-library://asset/asset.JPG?id=CF72ABDE-76CE-4411-AB7D-587B3540A140&ext=JPG”);使用(var dp=new CGDataProvider(file))-这对我不起作用。在创建CGDataProvider时,我得到一个ArgumentException.:(不是针对那个定制方案(它是内部的,在较新的SDK中引入,不是为了给出真实的位置)。如果提供更多的代码(如何获得URL),您将节省大量时间或者URL本身。要获取图像,您需要获取
ALAsset
ALAssetRepresentation
,并请求其全屏图像。例如
CGImage img=asset.DefaultRepresentation.GetImage();
我提到我有一个用于保存照片媒体文件夹中的内部照片的资产对象。这是否与iOS5/4等向后兼容?这将从资源加载文件。我需要从资产URL加载。错误,它将从URL加载图像。URL是从MainBundle的资源位置构建的-但是
CGDataProvider
没有意识到这一点(例如,它可能来自世界各地的web服务器,而不是设备本身)。因此,您的意思是使用这样的资产URL,并使用其余代码,它应该可以工作?字符串文件=(“资产”)-library://asset/asset.JPG?id=CF72ABDE-76CE-4411-AB7D-587B3540A140&ext=JPG”);使用(var dp=new CGDataProvider(file))-这对我不起作用。在创建CGDataProvider时,我会得到一个ArgumentException.:(不是针对该自定义方案(它是内部的,在较新的SDK中引入,不是为了给出实际位置)。如果提供更多代码(如何获得URL),则可以节省大量时间或者URL本身。要获取图像,您需要获取
ALAsset
ALAssetRepresentation
,并请求其全屏图像。例如
CGImage img=asset.DefaultRepresentation.GetImage()
我提到我在保存的照片媒体文件夹中有一个用于内部照片的资产对象。这是否与iOS5/4等向后兼容?
string file = Path.Combine (NSBundle.MainBundle.ResourcePath, "image.png");
using (var dp = new CGDataProvider (file))
using (var img = CGImage.FromPNG (dp, null, false, CGColorRenderingIntent.Default))
using (var ui = new UIImage (img, 1.0f, UIImageOrientation.Up)) {
    Assert.IsNotNull (ui.CGImage, "CGImage");
}