private void Write130_ISOSpeedTypeConverter(string n, string ns, ISOSpeedTypeConverter o, bool isNullable, bool needType) { if (o == null) { if (isNullable) { base.WriteNullTagLiteral(n, ns); } } else { if (!needType && (o.GetType() != typeof(ISOSpeedTypeConverter))) { throw base.CreateUnknownTypeException(o); } base.WriteStartElement(n, ns, o, false, null); if (needType) { base.WriteXsiType("ISOSpeedTypeConverter", ""); } base.WriteEndElement(o); } }
public bool Register(Hashtable options) { if (options == null) { return false; } MaxThumbnailSize = PropertyProviderManager.ReadOption<Size>(options, "maxThumbnailSize", new Size(120, 120)); KeepThumbnailSize = PropertyProviderManager.ReadOption<bool>(options, "keepThumbnailSize", true); List<PropertyTag> list = null; string str = options["propertyTags"] as string; if (str != null) { list = new List<PropertyTag>(); foreach (string str2 in StringHelper.SplitString(str, new char[] { ',' })) { try { list.Add((PropertyTag) Enum.Parse(typeof(PropertyTag), str2, true)); } catch { } } } ImageExtMap = new Dictionary<string, TagCapability>(StringComparer.OrdinalIgnoreCase); foreach (ImageCodecInfo info in ImageCodecInfo.GetImageDecoders()) { TagCapability size = TagCapability.Size; if (info.FormatID == ImageFormat.Gif.Guid) { size |= TagCapability.Frames; } else if (info.FormatID == ImageFormat.Icon.Guid) { size |= TagCapability.Frames; } else if (info.FormatID == ImageFormat.Jpeg.Guid) { size |= TagCapability.Exif | TagCapability.Properties; } else if (info.FormatID == ImageFormat.Png.Guid) { size |= TagCapability.Properties; } else if (info.FormatID == ImageFormat.Tiff.Guid) { size |= TagCapability.Exif | TagCapability.Properties | TagCapability.Frames; } foreach (string str3 in StringHelper.SplitString(info.FilenameExtension, new char[] { ';' })) { ImageExtMap.Add(Path.GetExtension(str3), size); } } int groupId = VirtualProperty.RegisterGroup("Image"); if (list != null) { foreach (PropertyTag tag in list) { Type type; int length = -1; TypeConverter converter = null; PropertyTag tag2 = tag; if (tag2 <= PropertyTag.ImageDescription) { switch (tag2) { case PropertyTag.ImageWidth: case PropertyTag.ImageHeight: length = 4; goto Label_030A; case PropertyTag.ImageDescription: { continue; } } goto Label_030A; } if (tag2 != PropertyTag.SoftwareUsed) { if (tag2 == PropertyTag.ExifISOSpeed) { goto Label_0301; } goto Label_030A; } int num3 = VirtualProperty.RegisterGroup("Document"); int num4 = DefaultProperty.RegisterProperty("SoftwareUsed", num3, typeof(string), -1); PropertyTagMap.Add(tag, num4); continue; Label_0301: converter = new ISOSpeedTypeConverter(); Label_030A: type = PropertyTagHelper.GetPropertyType(tag); if (type == typeof(DateTime)) { converter = DateTimeTypeConverter.Default; } int num5 = DefaultProperty.RegisterProperty(tag.ToString(), groupId, type, length, converter, 0); switch (tag) { case PropertyTag.ImageWidth: PropertyImageWidth = num5; break; case PropertyTag.ImageHeight: PropertyImageHeight = num5; break; } PropertyTagMap.Add(tag, num5); } } PropertyTagMap.Add(PropertyTag.ImageDescription, 11); if (PropertyImageWidth < 0) { PropertyImageWidth = DefaultProperty.RegisterProperty("ImageWidth", groupId, typeof(int), 4); } if (PropertyImageHeight < 0) { PropertyImageHeight = DefaultProperty.RegisterProperty("ImageHeight", groupId, typeof(int), 4); } PropertyImageSize = DefaultProperty.RegisterProperty("ImageSize", groupId, typeof(Size), -1, ImageSizeTypeConverter.Default, 0); PropertyFrameCount = DefaultProperty.RegisterProperty("FrameCount", groupId, typeof(int), 2); PropertyColorSpace = DefaultProperty.RegisterProperty("ColorSpace", groupId, typeof(ColorSpace), 5); PropertyBPP = DefaultProperty.RegisterProperty("BPP", groupId, typeof(int), 2); PropertyDPI = DefaultProperty.RegisterProperty("DPI", groupId, typeof(int), -1, DPITypeConverter.Default, 0); return true; }
private ISOSpeedTypeConverter Read130_ISOSpeedTypeConverter(bool isNullable, bool checkType) { XmlQualifiedName type = checkType ? base.GetXsiType() : null; bool flag = false; if (isNullable) { flag = base.ReadNull(); } if ((checkType && (type != null)) && ((type.Name != this.id87_ISOSpeedTypeConverter) || (type.Namespace != this.id2_Item))) { throw base.CreateUnknownTypeException(type); } if (flag) { return null; } ISOSpeedTypeConverter o = new ISOSpeedTypeConverter(); while (base.Reader.MoveToNextAttribute()) { if (!base.IsXmlnsAttribute(base.Reader.Name)) { base.UnknownNode(o); } } base.Reader.MoveToElement(); if (base.Reader.IsEmptyElement) { base.Reader.Skip(); return o; } base.Reader.ReadStartElement(); base.Reader.MoveToContent(); int whileIterations = 0; int readerCount = base.ReaderCount; while ((base.Reader.NodeType != XmlNodeType.EndElement) && (base.Reader.NodeType != XmlNodeType.None)) { if (base.Reader.NodeType == XmlNodeType.Element) { base.UnknownNode(o, ""); } else { base.UnknownNode(o, ""); } base.Reader.MoveToContent(); base.CheckReaderCount(ref whileIterations, ref readerCount); } base.ReadEndElement(); return o; }