2003-07-21 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
[mono.git] / mcs / class / System.Drawing / System.Drawing.Imaging / ImageCodecInfo.cs
1 //
2 // System.Drawing.Imaging.ImageCodecInfo.cs
3 //
4 // (C) 2002 Ximian, Inc.  http://www.ximian.com
5 // Author: Everaldo Canuto
6 // eMail: everaldo.canuto@bol.com.br
7 // Dennis Hayes (dennish@raytek.com)
8 // Alexandre Pigolkine (pigolkine@gmx.de)
9 //
10 using System;
11 using System.Collections;
12 using System.IO;
13
14 namespace System.Drawing.Imaging {
15
16         //[ComVisible(false)]
17         public sealed class ImageCodecInfo {
18
19                 Guid    clsid;
20                 string  codecName;
21                 string  dllName;
22                 string  filenameExtension;
23                 ImageCodecFlags flags;
24                 string  formatDescription;
25                 Guid    formatID;
26                 string  mimeType;
27                 byte[][] signatureMasks;
28                 byte[][] signaturePatterns;
29                 int             version;
30
31                 static ArrayList allCodecs = new ArrayList();
32
33                 static ImageCodecInfo() {
34                         allCodecs.Add(BMPCodec.CodecInfo);
35                         allCodecs.Add(JPEGCodec.CodecInfo);
36                 }
37
38                 internal delegate void DecodeFromStream( Stream stream, InternalImageInfo info);
39                 internal DecodeFromStream decode;
40
41                 internal delegate void EncodeToStream( Stream stream, InternalImageInfo info);
42                 internal EncodeToStream encode;
43
44                 // methods
45                 [MonoTODO]
46                 //[ComVisible(false)]
47                 public static ImageCodecInfo[] GetImageDecoders() {
48                         ArrayList decoders = new ArrayList();
49                         foreach( ImageCodecInfo info in allCodecs) {
50                                 if( (info.Flags & ImageCodecFlags.Decoder) != 0) {
51                                         decoders.Add( info);
52                                 }
53                         }
54                         ImageCodecInfo[] result = new ImageCodecInfo[decoders.Count];
55                         decoders.CopyTo( result, 0);
56                         return result;
57                 }
58                 
59                 [MonoTODO]
60                 //[ComVisible(false)]
61                 public static ImageCodecInfo[] GetImageEncoders() {
62                         ArrayList encoders = new ArrayList();
63                         foreach( ImageCodecInfo info in allCodecs) {
64                                 if( (info.Flags & ImageCodecFlags.Encoder) != 0) {
65                                         encoders.Add( info);
66                                 }
67                         }
68                         ImageCodecInfo[] result = new ImageCodecInfo[encoders.Count];
69                         encoders.CopyTo( result, 0);
70                         return result;
71                 }
72
73                 // properties
74                 [MonoTODO]
75                 //[ComVisible(false)]
76                 public Guid Clsid {
77                         get { return clsid; }
78                         set { clsid = value; }
79                 }
80
81                 [MonoTODO]
82                 //[ComVisible(false)]
83                 public string CodecName {
84                         get { return codecName; }
85                         set { codecName = value; }
86                 }
87
88                 [MonoTODO]
89                 //[ComVisible(false)]
90                 public string DllName {
91                         get { return dllName; }
92                         set { dllName = value; }
93                 }
94
95                 [MonoTODO]
96                 //[ComVisible(false)]
97                 public string FilenameExtension {
98                         get { return filenameExtension; }
99                         set { filenameExtension = value; }
100                 }
101
102                 [MonoTODO]
103                 //[ComVisible(false)]
104                 public ImageCodecFlags Flags {
105                         get { return flags; }
106                         set { flags = value; }
107                 }
108
109                 [MonoTODO]
110                 //[ComVisible(false)]
111                 public string FormatDescription {
112                         get { return formatDescription; }
113                         set { formatDescription = value; }
114                 }
115
116                 [MonoTODO]
117                 //[ComVisible(false)]
118                 public Guid FormatID {
119                         get { return formatID; }
120                         set { formatID = value; }
121                 }
122
123                 [MonoTODO]
124                 //[ComVisible(false)]
125                 public string MimeType {
126                         get { return mimeType; }
127                         set { mimeType = value; }
128                 }
129
130                 [MonoTODO]
131                 [CLSCompliant(false)]
132                 //[ComVisible(false)]
133                 public byte[][] SignatureMasks {
134                         get { return signatureMasks; }
135                         set { signatureMasks = value; }
136                 }
137
138                 [MonoTODO]
139                 [CLSCompliant(false)]
140                 //[ComVisible(false)]
141                 public byte[][] SignaturePatterns {
142                         get { return signaturePatterns; }
143                         set { signaturePatterns = value; }
144                 }
145
146                 [MonoTODO]
147                 //[ComVisible(false)]
148                 public int Version {
149                         get { return version; }
150                         set { version = value; }
151                 }
152
153         }
154
155 }