Ejemplo n.º 1
0
        private void AddCustomTags(List <MetadataItem> metadata, TagLib.File f)
        {
            // if the file is an image, extract image specific tags.
            // all metadata should use the libextractor 0.5.x format in order to
            // preserve compatibility.

            if (f is TagLib.Image.File)
            {
                TagLib.Image.ImageTag tag = (TagLib.Image.ImageTag)f.Tag;

                AddData(metadata, MetadataType.CAMERA_MAKE, tag.Make);
                AddData(metadata, MetadataType.CAMERA_MODEL, tag.Model);
                AddData(metadata, MetadataType.CREATOR, tag.Creator);
                //AddData(metadata, MetadataType.SOFTWARE,		tag.Software); // returns "1.0" for pictures !?

                if (tag.DateTime.HasValue)
                {
                    AddData(metadata, MetadataType.DATE,
                            tag.DateTime.Value.ToString("yyyy:MM:dd HH:mm:ss"));                     // ":" in date intended
                }
                // exposure times are generally very short,
                // so allow at least 3 decimal places
                if (tag.ExposureTime.HasValue)
                {
                    AddData(metadata, MetadataType.EXPOSURE,
                            tag.ExposureTime.Value.ToString("#0.000 s", numformat));
                }

                if (tag.FocalLength.HasValue)
                {
                    AddData(metadata, MetadataType.FOCAL_LENGTH, tag.FocalLength.Value.ToString("#0.0 mm", numformat));
                }

                if (tag.FocalLengthIn35mmFilm.HasValue)
                {
                    AddData(metadata, MetadataType.FOCAL_LENGTH_35MM, tag.FocalLengthIn35mmFilm.Value.ToString("#0.0 mm", numformat));
                }

                if (tag.Orientation != TagLib.Image.ImageOrientation.None)
                {
                    AddData(metadata, MetadataType.ORIENTATION, orientations[tag.Orientation]);
                }

                if (tag.ISOSpeedRatings.HasValue)
                {
                    AddData(metadata, MetadataType.ISO_SPEED, tag.ISOSpeedRatings.Value.ToString());
                }
            }
        }
        public T GetValue(TagLib.Image.ImageTag tag)
        {
            Assert.IsNotNull(tag);

            return((T)property_info.GetValue(tag, null));
        }
        public void SetValue(TagLib.Image.ImageTag tag, T value)
        {
            Assert.IsNotNull(tag);

            property_info.SetValue(tag, value, null);
        }