Beispiel #1
0
    public void Test_IptcProfile()
    {
      using (MagickImage input = new MagickImage(Files.MagickNETIconPNG))
      {
        IptcProfile profile = input.GetIptcProfile();
        Assert.IsNull(profile);

        profile = new IptcProfile();
        profile.SetValue(IptcTag.Headline, "Magick.NET");
        profile.SetValue(IptcTag.CopyrightNotice, "Copyright.NET");

        input.AddProfile(profile);

        using (MemoryStream memStream = new MemoryStream())
        {
          input.Format = MagickFormat.Tiff;
          input.Write(memStream);

          memStream.Position = 0;
          using (MagickImage output = new MagickImage(memStream))
          {
            profile = output.GetIptcProfile();
            Assert.IsNotNull(profile);
            TestValue(profile, IptcTag.Headline, "Magick.NET");
            TestValue(profile, IptcTag.CopyrightNotice, "Copyright.NET");
          }
        }
      }
    }
Beispiel #2
0
 private static IptcValue GetIptcValue()
 {
   using (MagickImage image = new MagickImage(Files.FujiFilmFinePixS1ProJPG))
   {
     IptcProfile profile = image.GetIptcProfile();
     return profile.Values.ElementAt(1);
   }
 }
    public void Test_ToByteArray()
    {
      using (MagickImage image = new MagickImage(Files.FujiFilmFinePixS1ProJPG))
      {
        ImageProfile profile = image.GetIptcProfile();
        Assert.IsNotNull(profile);

        Assert.AreEqual(273, profile.ToByteArray().Length);
      }
    }
    public void Test_IEquatable()
    {
      using (MagickImage image = new MagickImage(Files.FujiFilmFinePixS1ProJPG))
      {
        ImageProfile first = image.GetIptcProfile();

        Assert.IsFalse(first == null);
        Assert.IsFalse(first.Equals(null));
        Assert.IsTrue(first.Equals(first));
        Assert.IsTrue(first.Equals((object)first));

        ImageProfile second = image.GetIptcProfile();
        Assert.IsNotNull(second);

        Assert.IsTrue(first == second);
        Assert.IsTrue(first.Equals(second));
        Assert.IsTrue(first.Equals((object)second));

        second = new IptcProfile(new byte[] { 0 });

        Assert.IsTrue(first != second);
        Assert.IsFalse(first.Equals(second));
      }
    }
    public void Test_SetEncoding()
    {
      using (MagickImage image = new MagickImage(Files.FujiFilmFinePixS1ProJPG))
      {
        IptcProfile profile = image.GetIptcProfile();
        TestProfileValues(profile);

        ExceptionAssert.Throws<ArgumentNullException>(delegate ()
        {
          profile.SetEncoding(null);
        });

        profile.SetEncoding(Encoding.UTF8);
        Assert.AreEqual(Encoding.UTF8, profile.Values.First().Encoding);
      }
    }
    public void Test_ClippingPaths()
    {
      using (MagickImage image = new MagickImage(Files.EightBimTIF))
      {
        EightBimProfile profile = image.Get8BimProfile();
        TestProfile(profile);

        using (MagickImage emptyImage = new MagickImage(Files.EightBimTIF))
        {
          emptyImage.Strip();
          Assert.IsNull(emptyImage.GetIptcProfile());
          emptyImage.AddProfile(profile);

          profile = emptyImage.Get8BimProfile();
          TestProfile(profile);
        }
      }
    }
    public void Test_SkipProfiles()
    {
      MagickReadSettings settings = new MagickReadSettings()
      {
        Defines = new JpegReadDefines()
        {
          SkipProfiles = ProfileTypes.Iptc | ProfileTypes.Icc
        }
      };

      using (MagickImage image = new MagickImage())
      {
        image.Read(Files.FujiFilmFinePixS1ProJPG);
        Assert.IsNotNull(image.GetIptcProfile());

        image.Read(Files.FujiFilmFinePixS1ProJPG, settings);
        Assert.IsNull(image.GetIptcProfile());
        Assert.AreEqual("Icc,Iptc", image.GetDefine(MagickFormat.Unknown, "profile:skip"));
      }
    }
    public void Test_SetValue()
    {
      using (MemoryStream memStream = new MemoryStream())
      {
        string credit = null;
        for (int i = 0; i < 255; i++)
          credit += i.ToString() + ".";

        using (MagickImage image = new MagickImage(Files.FujiFilmFinePixS1ProJPG))
        {
          IptcProfile profile = image.GetIptcProfile();
          TestProfileValues(profile);

          IptcValue value = profile.GetValue(IptcTag.Title);
          TestValue(value, "Communications");

          profile.SetValue(IptcTag.Title, "Magick.NET Title");
          TestValue(value, "Magick.NET Title");

          value = profile.GetValue(IptcTag.Title);
          TestValue(value, "Magick.NET Title");

          value = profile.Values.FirstOrDefault(val => val.Tag == IptcTag.ReferenceNumber);
          Assert.IsNull(value);

          profile.SetValue(IptcTag.ReferenceNumber, "Magick.NET ReferenceNümber");

          value = profile.GetValue(IptcTag.ReferenceNumber);
          TestValue(value, "Magick.NET ReferenceNümber");

          profile.SetValue(IptcTag.Credit, credit);

          value = profile.GetValue(IptcTag.Credit);
          TestValue(value, credit);

          // Remove the 8bim profile so we can overwrite the iptc profile.
          image.RemoveProfile("8bim");
          image.AddProfile(profile);

          image.Write(memStream);
          memStream.Position = 0;
        }

        using (MagickImage image = new MagickImage(memStream))
        {
          IptcProfile profile = image.GetIptcProfile();
          TestProfileValues(profile, 19);

          IptcValue value = profile.GetValue(IptcTag.Title);
          TestValue(value, "Magick.NET Title");

          value = profile.GetValue(IptcTag.ReferenceNumber);
          TestValue(value, "Magick.NET ReferenceNümber");

          value = profile.GetValue(IptcTag.Credit);
          TestValue(value, credit);

          ExceptionAssert.Throws<ArgumentNullException>(delegate ()
          {
            profile.SetValue(IptcTag.Caption, null, "Test");
          });

          profile.SetValue(IptcTag.Caption, "Test");
          value = profile.Values.ElementAt(1);
          Assert.AreEqual("Test", value.Value);

          profile.SetValue(IptcTag.Caption, Encoding.UTF32, "Test");
          Assert.AreEqual(Encoding.UTF32, value.Encoding);
          Assert.AreEqual("Test", value.Value);

          Assert.IsTrue(profile.RemoveValue(IptcTag.Caption));
          Assert.IsFalse(profile.RemoveValue(IptcTag.Caption));
          Assert.IsNull(profile.GetValue(IptcTag.Caption));
        }
      }
    }
    public void Test_Values()
    {
      using (MagickImage image = new MagickImage(Files.FujiFilmFinePixS1ProJPG))
      {
        IptcProfile profile = image.GetIptcProfile();
        TestProfileValues(profile);

        using (MagickImage emptyImage = new MagickImage(Files.ImageMagickJPG))
        {
          Assert.IsNull(emptyImage.GetIptcProfile());
          emptyImage.AddProfile(profile);

          profile = emptyImage.GetIptcProfile();
          TestProfileValues(profile);
        }
      }
    }
    public void Test_Profile()
    {
      using (MagickImage image = new MagickImage(Files.FujiFilmFinePixS1ProJPG))
      {
        ImageProfile profile = image.GetIptcProfile();
        Assert.IsNotNull(profile);
        image.RemoveProfile(profile.Name);
        profile = image.GetIptcProfile();
        Assert.IsNull(profile);

        using (MemoryStream memStream = new MemoryStream())
        {
          image.Write(memStream);
          memStream.Position = 0;

          using (MagickImage newImage = new MagickImage(memStream))
          {
            profile = newImage.GetIptcProfile();
            Assert.IsNull(profile);
          }
        }
      }
    }