2 // System.Drawing.Imaging.ImageCodecInfo.cs
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)
11 using System.Collections;
14 namespace System.Drawing.Imaging {
17 public sealed class ImageCodecInfo {
22 string filenameExtension;
23 ImageCodecFlags flags;
24 string formatDescription;
27 byte[][] signatureMasks;
28 byte[][] signaturePatterns;
31 static ArrayList allCodecs = new ArrayList();
33 static ImageCodecInfo() {
34 allCodecs.Add(BMPCodec.CodecInfo);
35 allCodecs.Add(JPEGCodec.CodecInfo);
38 internal delegate void DecodeFromStream( Stream stream, InternalImageInfo info);
39 internal DecodeFromStream decode;
41 internal delegate void EncodeToStream( Stream stream, InternalImageInfo info);
42 internal EncodeToStream encode;
47 public static ImageCodecInfo[] GetImageDecoders() {
48 ArrayList decoders = new ArrayList();
49 foreach( ImageCodecInfo info in allCodecs) {
50 if( (info.Flags & ImageCodecFlags.Decoder) != 0) {
54 ImageCodecInfo[] result = new ImageCodecInfo[decoders.Count];
55 decoders.CopyTo( result, 0);
61 public static ImageCodecInfo[] GetImageEncoders() {
62 ArrayList encoders = new ArrayList();
63 foreach( ImageCodecInfo info in allCodecs) {
64 if( (info.Flags & ImageCodecFlags.Encoder) != 0) {
68 ImageCodecInfo[] result = new ImageCodecInfo[encoders.Count];
69 encoders.CopyTo( result, 0);
78 set { clsid = value; }
83 public string CodecName {
84 get { return codecName; }
85 set { codecName = value; }
90 public string DllName {
91 get { return dllName; }
92 set { dllName = value; }
97 public string FilenameExtension {
98 get { return filenameExtension; }
99 set { filenameExtension = value; }
103 //[ComVisible(false)]
104 public ImageCodecFlags Flags {
105 get { return flags; }
106 set { flags = value; }
110 //[ComVisible(false)]
111 public string FormatDescription {
112 get { return formatDescription; }
113 set { formatDescription = value; }
117 //[ComVisible(false)]
118 public Guid FormatID {
119 get { return formatID; }
120 set { formatID = value; }
124 //[ComVisible(false)]
125 public string MimeType {
126 get { return mimeType; }
127 set { mimeType = value; }
131 [CLSCompliant(false)]
132 //[ComVisible(false)]
133 public byte[][] SignatureMasks {
134 get { return signatureMasks; }
135 set { signatureMasks = value; }
139 [CLSCompliant(false)]
140 //[ComVisible(false)]
141 public byte[][] SignaturePatterns {
142 get { return signaturePatterns; }
143 set { signaturePatterns = value; }
147 //[ComVisible(false)]
149 get { return version; }
150 set { version = value; }