Пример #1
0
        public void GetFlashBiasDescription()
        {
            var directory  = new CanonMakernoteDirectory();
            var descriptor = new CanonMakernoteDescriptor(directory);

            // set and check values
            directory.Set(CanonMakernoteDirectory.FocalLength.TagFlashBias, 0xFFC0);
            Assert.Equal("-2.0 EV", descriptor.GetDescription(CanonMakernoteDirectory.FocalLength.TagFlashBias));
            directory.Set(CanonMakernoteDirectory.FocalLength.TagFlashBias, 0xffd4);
            Assert.Equal("-1.375 EV", descriptor.GetDescription(CanonMakernoteDirectory.FocalLength.TagFlashBias));
            directory.Set(CanonMakernoteDirectory.FocalLength.TagFlashBias, 0x0000);
            Assert.Equal("0.0 EV", descriptor.GetDescription(CanonMakernoteDirectory.FocalLength.TagFlashBias));
            directory.Set(CanonMakernoteDirectory.FocalLength.TagFlashBias, 0x000c);
            Assert.Equal("0.375 EV", descriptor.GetDescription(CanonMakernoteDirectory.FocalLength.TagFlashBias));
            directory.Set(CanonMakernoteDirectory.FocalLength.TagFlashBias, 0x0010);
            Assert.Equal("0.5 EV", descriptor.GetDescription(CanonMakernoteDirectory.FocalLength.TagFlashBias));
            directory.Set(CanonMakernoteDirectory.FocalLength.TagFlashBias, 0x0014);
            Assert.Equal("0.625 EV", descriptor.GetDescription(CanonMakernoteDirectory.FocalLength.TagFlashBias));
            directory.Set(CanonMakernoteDirectory.FocalLength.TagFlashBias, 0x0020);
            Assert.Equal("1.0 EV", descriptor.GetDescription(CanonMakernoteDirectory.FocalLength.TagFlashBias));
            directory.Set(CanonMakernoteDirectory.FocalLength.TagFlashBias, 0x0030);
            Assert.Equal("1.5 EV", descriptor.GetDescription(CanonMakernoteDirectory.FocalLength.TagFlashBias));
            directory.Set(CanonMakernoteDirectory.FocalLength.TagFlashBias, 0x0034);
            Assert.Equal("1.625 EV", descriptor.GetDescription(CanonMakernoteDirectory.FocalLength.TagFlashBias));
            directory.Set(CanonMakernoteDirectory.FocalLength.TagFlashBias, 0x0040);
            Assert.Equal("2.0 EV", descriptor.GetDescription(CanonMakernoteDirectory.FocalLength.TagFlashBias));
        }
Пример #2
0
        public virtual void TestGetFlashBiasDescription()
        {
            CanonMakernoteDirectory  directory  = new CanonMakernoteDirectory();
            CanonMakernoteDescriptor descriptor = new CanonMakernoteDescriptor(directory);

            // set and check values
            directory.SetInt(CanonMakernoteDirectory.FocalLength.TagFlashBias, unchecked ((int)(0xFFC0)));
            Sharpen.Tests.AreEqual("-2.0 EV", descriptor.GetDescription(CanonMakernoteDirectory.FocalLength.TagFlashBias));
            directory.SetInt(CanonMakernoteDirectory.FocalLength.TagFlashBias, unchecked ((int)(0xffd4)));
            Sharpen.Tests.AreEqual("-1.375 EV", descriptor.GetDescription(CanonMakernoteDirectory.FocalLength.TagFlashBias));
            directory.SetInt(CanonMakernoteDirectory.FocalLength.TagFlashBias, unchecked ((int)(0x0000)));
            Sharpen.Tests.AreEqual("0.0 EV", descriptor.GetDescription(CanonMakernoteDirectory.FocalLength.TagFlashBias));
            directory.SetInt(CanonMakernoteDirectory.FocalLength.TagFlashBias, unchecked ((int)(0x000c)));
            Sharpen.Tests.AreEqual("0.375 EV", descriptor.GetDescription(CanonMakernoteDirectory.FocalLength.TagFlashBias));
            directory.SetInt(CanonMakernoteDirectory.FocalLength.TagFlashBias, unchecked ((int)(0x0010)));
            Sharpen.Tests.AreEqual("0.5 EV", descriptor.GetDescription(CanonMakernoteDirectory.FocalLength.TagFlashBias));
            directory.SetInt(CanonMakernoteDirectory.FocalLength.TagFlashBias, unchecked ((int)(0x0014)));
            Sharpen.Tests.AreEqual("0.625 EV", descriptor.GetDescription(CanonMakernoteDirectory.FocalLength.TagFlashBias));
            directory.SetInt(CanonMakernoteDirectory.FocalLength.TagFlashBias, unchecked ((int)(0x0020)));
            Sharpen.Tests.AreEqual("1.0 EV", descriptor.GetDescription(CanonMakernoteDirectory.FocalLength.TagFlashBias));
            directory.SetInt(CanonMakernoteDirectory.FocalLength.TagFlashBias, unchecked ((int)(0x0030)));
            Sharpen.Tests.AreEqual("1.5 EV", descriptor.GetDescription(CanonMakernoteDirectory.FocalLength.TagFlashBias));
            directory.SetInt(CanonMakernoteDirectory.FocalLength.TagFlashBias, unchecked ((int)(0x0034)));
            Sharpen.Tests.AreEqual("1.625 EV", descriptor.GetDescription(CanonMakernoteDirectory.FocalLength.TagFlashBias));
            directory.SetInt(CanonMakernoteDirectory.FocalLength.TagFlashBias, unchecked ((int)(0x0040)));
            Sharpen.Tests.AreEqual("2.0 EV", descriptor.GetDescription(CanonMakernoteDirectory.FocalLength.TagFlashBias));
        }
Пример #3
0
    public static Metadata ParseCanonMakernoteDirectory(CanonMakernoteDirectory directory, Metadata metadata)
    {
        if (directory.ContainsTag(CanonMakernoteDirectory.CameraSettings.TagLensType))
        {
            metadata.Camera.LensModel =
                directory.GetDescription(CanonMakernoteDirectory.CameraSettings.TagLensType);
        }

        return(metadata);
    }
Пример #4
0
        private static Version GetFirmwareVersion(CanonMakernoteDirectory canon)
        {
            var str = canon.GetString(CanonMakernoteDirectory.TagCanonFirmwareVersion);

            if (str == null)
            {
                return(null);
            }

            str = str.TrimStart("Firmware Version ");
            if (str == null)
            {
                return(null);
            }

            Version firmwareVersion;

            Version.TryParse(str, out firmwareVersion);
            return(firmwareVersion);
        }