2 using System
.Drawing
.Imaging
;
5 using Mainsoft
.Drawing
.Imaging
;
9 using imageio
= javax
.imageio
;
11 namespace Mainsoft
.Drawing
.Imaging
14 /// Summary description for PlainImage.
16 public class PlainImage
: ICloneable
{
20 awt
.Image _nativeObject
;
21 awt
.Image
[] _thumbnails
;
22 FrameDimension _dimension
;
23 XmlDocument _metadata
;
24 imageio
.metadata
.IIOMetadata _nativeMetadata
;
25 ImageFormat _imageFormat
;
38 public PlainImage(awt
.Image image
, awt
.Image
[] thumbnails
, ImageFormat format
, float xRes
, float yRes
, FrameDimension dimension
) {
39 _nativeObject
= image
;
40 _thumbnails
= thumbnails
;
41 _imageFormat
= format
;
46 _dimension
= dimension
;
52 private awt
.Image NativeObject
{
53 get { return _nativeObject; }
54 set { _nativeObject = value; }
57 #region PlainImage properties
59 public awt
.Image NativeImage
{
60 get { return NativeObject; }
61 set { NativeObject = value; }
64 internal imageio
.metadata
.IIOMetadata NativeMetadata
{
65 get { return _nativeMetadata; }
66 set { _nativeMetadata = value; }
69 public XmlDocument Metadata
{
70 get { return _metadata; }
71 set { _metadata = value; }
74 public ImageFormat ImageFormat
{
75 get { return _imageFormat; }
78 public FrameDimension Dimension
{
79 get { return _dimension; }
80 set { _dimension = value; }
83 public awt
.Image
[] Thumbnails
{
84 get { return _thumbnails; }
87 public float HorizontalResolution
{
88 get { return _xResolution; }
89 set { _xResolution = value; }
92 public float VerticalResolution
{
93 get { return _yResolution; }
94 set { _yResolution = value; }
99 #region ICloneable members
101 public object Clone() {
105 public PlainImage
Clone(bool cloneImage
) {
106 awt
.Image img
= NativeImage
;
107 awt
.Image
[] th
= _thumbnails
;
110 img
= new BufferedImage(
111 ((BufferedImage
)NativeObject
).getColorModel(),
112 ((BufferedImage
)NativeObject
).copyData(null),
113 ((BufferedImage
)NativeObject
).isAlphaPremultiplied(), null);
115 if (Thumbnails
!= null) {
116 th
= new java
.awt
.Image
[ Thumbnails
.Length
];
117 for (int i
=0; i
< Thumbnails
.Length
; i
++) {
118 th
[i
] = new BufferedImage(
119 ((BufferedImage
)Thumbnails
[i
]).getColorModel(),
120 ((BufferedImage
)Thumbnails
[i
]).copyData(null),
121 ((BufferedImage
)Thumbnails
[i
]).isAlphaPremultiplied(), null);
126 return new PlainImage(
130 HorizontalResolution
,