diff options
author | David Karlaš <david.karlas@xamarin.com> | 2014-07-24 12:58:16 +0400 |
---|---|---|
committer | David Karlaš <david.karlas@xamarin.com> | 2014-07-24 12:58:16 +0400 |
commit | 997fc8115e1616b51d128e34a29a9e87e43d271e (patch) | |
tree | 7299ef93f431a5ee8dc3a6d4a66782626b831efe /main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Converters | |
parent | cc83b2b75f42425617f357712ef6a5a5fda3a07d (diff) |
[Debugger] CGImgage converter
Diffstat (limited to 'main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Converters')
-rw-r--r-- | main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Converters/ImageConverter.cs | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Converters/ImageConverter.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Converters/ImageConverter.cs index c25bc4d25d..333ec60e80 100644 --- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Converters/ImageConverter.cs +++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger.Converters/ImageConverter.cs @@ -39,7 +39,8 @@ namespace MonoDevelop.Debugger.Converters return val.TypeName != null && ( val.TypeName == "Android.Graphics.Bitmap" || val.TypeName == "Gdk.Pixbuf" || - val.TypeName.EndsWith ("UIKit.UIImage")); + val.TypeName.EndsWith ("UIKit.UIImage") || + val.TypeName.EndsWith ("CoreGraphics.CGImage")); } public override Image GetValue (ObjectValue val) @@ -60,6 +61,13 @@ namespace MonoDevelop.Debugger.Converters var bytes = (byte[])(arrayObject).GetValues (0, arrayObject.Length); var ms = new MemoryStream (bytes, false); return Image.FromStream (ms); + } else if (val.TypeName.EndsWith ("CoreGraphics.CGImage")) { + rawVal = (RawValue)DebuggingService.CurrentFrame.GetExpressionValue ("MonoTouch.UIKit.UIImage.FromImage(" + val.Name + ")", true).GetRawValue (ops); + RawValue nsData = (RawValue)rawVal.CallMethod ("AsPNG"); + var arrayObject = (RawValueArray)nsData.CallMethod ("ToArray"); + var bytes = (byte[])(arrayObject).GetValues (0, arrayObject.Length); + var ms = new MemoryStream (bytes, false); + return Image.FromStream (ms); } else if (val.TypeName.EndsWith ("UIKit.UIImage")) { RawValue nsData = (RawValue)rawVal.CallMethod ("AsPNG"); var arrayObject = (RawValueArray)nsData.CallMethod ("ToArray"); |