DetectedObject.cs
1.41 KB
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
using System.Drawing;
using System.Runtime.Serialization;
namespace Touchless.Vision.Contracts
{
[DataContract]
public class DetectedObject
{
private static readonly object SyncObject = new object();
private static int _nextId = 1;
public DetectedObject()
{
Id = NextId();
}
[DataMember]
public int Id { get; private set; }
[IgnoreDataMember]
public Bitmap Image { get; set; }
//[DataMember]
//public byte[] ImageData
//{
// get
// {
// byte[] data = null;
// if (this.Image != null)
// {
// MemoryStream memoryStream = new MemoryStream();
// this.Image.Save(memoryStream, ImageFormat.Bmp);
// memoryStream.Flush();
// data = memoryStream.ToArray();
// memoryStream.Close();
// }
// return data;
// }
//}
[DataMember]
public virtual Point Position { get; set; }
public void AssignNewId()
{
Id = NextId();
}
private static int NextId()
{
int result;
lock (SyncObject)
{
result = _nextId;
_nextId++;
}
return result;
}
}
}