forked from andrewkirillov/AForge.NET
-
Notifications
You must be signed in to change notification settings - Fork 22
/
Copy pathUnmanagedImageVisualizer.cs
45 lines (39 loc) · 1.42 KB
/
UnmanagedImageVisualizer.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
// AForge debugging visualizers
// AForge.NET framework
// http://www.aforgenet.com/framework/
//
// Copyright © AForge.NET, 2011
// contacts@aforgenet.com
//
using System;
using System.IO;
using System.Drawing;
using System.Windows.Forms;
using System.Runtime.Serialization.Formatters.Binary;
using Microsoft.VisualStudio.DebuggerVisualizers;
[assembly: System.Diagnostics.DebuggerVisualizer(
typeof( AForge.DebuggerVisualizers.UnmanagedImageVisualizer ),
typeof( AForge.DebuggerVisualizers.UnmanagedImageObjectSource ),
Target = typeof( AForge.Imaging.UnmanagedImage ),
Description = "Unmanaged Image Visualizer" )]
namespace AForge.DebuggerVisualizers
{
public class UnmanagedImageVisualizer : DialogDebuggerVisualizer
{
override protected void Show( IDialogVisualizerService windowService, IVisualizerObjectProvider objectProvider )
{
Image image = (Image) objectProvider.GetObject( );
ImageView imageViewer = new ImageView( );
imageViewer.SetImage( image );
windowService.ShowDialog( imageViewer );
}
}
public class UnmanagedImageObjectSource : VisualizerObjectSource
{
public override void GetData( object target, Stream outgoingData )
{
BinaryFormatter bf = new BinaryFormatter( );
bf.Serialize( outgoingData, ( (AForge.Imaging.UnmanagedImage) target ).ToManagedImage( ) );
}
}
}