2005-10-04 Zoltan Varga <vargaz@freemail.hu>
[mono.git] / mcs / class / System.Drawing / System.Drawing / PlainImage.jvm.cs
1 using System;\r
2 using System.Drawing.Imaging;\r
3 using System.Xml;\r
4 \r
5 using Mainsoft.Drawing.Imaging;\r
6 \r
7 using awt = java.awt;\r
8 using java.awt.image;\r
9 using imageio = javax.imageio;\r
10 \r
11 namespace Mainsoft.Drawing.Imaging\r
12 {\r
13         /// <summary>\r
14         /// Summary description for PlainImage.\r
15         /// </summary>\r
16         public class PlainImage : ICloneable {\r
17 \r
18                 #region Members\r
19 \r
20                 awt.Image _nativeObject;\r
21                 awt.Image [] _thumbnails;\r
22                 FrameDimension _dimension;\r
23                 XmlDocument _metadata;\r
24                 imageio.metadata.IIOMetadata _nativeMetadata;\r
25                 ImageFormat _imageFormat;\r
26 \r
27                 float _xResolution;\r
28                 float _yResolution;\r
29 \r
30 \r
31                 #endregion\r
32 \r
33                 #region Constructors\r
34 \r
35                 public PlainImage() {\r
36                 }\r
37 \r
38                 public PlainImage(awt.Image image, awt.Image [] thumbnails, ImageFormat format, float xRes, float yRes, FrameDimension dimension) {\r
39                         _nativeObject = image;\r
40                         _thumbnails = thumbnails;\r
41                         _imageFormat = format;\r
42 \r
43                         _xResolution = xRes;\r
44                         _yResolution = yRes;\r
45 \r
46                         _dimension = dimension;\r
47                 }\r
48 \r
49                 #endregion\r
50 \r
51 \r
52                 private awt.Image NativeObject {\r
53                         get { return _nativeObject; }\r
54                         set { _nativeObject = value; }\r
55                 }\r
56 \r
57                 #region PlainImage properties\r
58 \r
59                 public awt.Image NativeImage {\r
60                         get { return NativeObject; }\r
61                         set { NativeObject = value; }\r
62                 }\r
63 \r
64                 internal imageio.metadata.IIOMetadata NativeMetadata {\r
65                         get { return _nativeMetadata; }\r
66                         set { _nativeMetadata = value; }\r
67                 }\r
68 \r
69                 public XmlDocument Metadata {\r
70                         get { return _metadata; }\r
71                         set { _metadata = value; }\r
72                 }\r
73 \r
74                 public ImageFormat ImageFormat {\r
75                         get { return _imageFormat; }\r
76                 }\r
77 \r
78                 public FrameDimension Dimension {\r
79                         get { return _dimension; }\r
80                         set { _dimension = value; }\r
81                 }\r
82 \r
83                 public awt.Image [] Thumbnails {\r
84                         get { return _thumbnails; }\r
85                 }\r
86 \r
87                 public float HorizontalResolution {\r
88                         get { return _xResolution; }\r
89                         set { _xResolution = value; }\r
90                 }\r
91 \r
92                 public float VerticalResolution {\r
93                         get { return _yResolution; }\r
94                         set { _yResolution = value; }\r
95                 }\r
96 \r
97                 #endregion\r
98 \r
99                 #region ICloneable members\r
100 \r
101                 public object Clone() {\r
102                         \r
103                         awt.Image img = new BufferedImage(\r
104                                 ((BufferedImage)NativeObject).getColorModel(), \r
105                                 ((BufferedImage)NativeObject).copyData(null), \r
106                                 ((BufferedImage)NativeObject).isAlphaPremultiplied(), null);\r
107 \r
108                         awt.Image [] th = null;\r
109                         if (Thumbnails != null) {\r
110                                 th = new java.awt.Image[ Thumbnails.Length ];\r
111                                 for (int i=0; i < Thumbnails.Length; i++) {\r
112                                         th[i] = new BufferedImage(\r
113                                                 ((BufferedImage)Thumbnails[i]).getColorModel(), \r
114                                                 ((BufferedImage)Thumbnails[i]).copyData(null), \r
115                                                 ((BufferedImage)Thumbnails[i]).isAlphaPremultiplied(), null);\r
116                                 }\r
117                         }\r
118 \r
119                         return new PlainImage( \r
120                                 img, \r
121                                 th, \r
122                                 ImageFormat, \r
123                                 HorizontalResolution, \r
124                                 VerticalResolution, \r
125                                 Dimension );\r
126                 }\r
127 \r
128                 #endregion\r
129         }\r
130 }\r