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