public void Test_BorderColor()
    {
      using (MagickImage image = new MagickImage(MagickColors.MediumTurquoise, 10, 10))
      {
        ColorAssert.AreEqual(new MagickColor("#df"), image.Settings.BorderColor);

        image.Settings.FillColor = MagickColors.Beige;
        image.Settings.BorderColor = MagickColors.MediumTurquoise;
        image.Extent(20, 20, Gravity.Center, MagickColors.Aqua);
        image.Draw(new DrawableAlpha(0, 0, PaintMethod.FillToBorder));

        ColorAssert.AreEqual(MagickColors.Beige, image, 0, 0);
        ColorAssert.AreEqual(MagickColors.MediumTurquoise, image, 10, 10);
      }
    }
Beispiel #2
0
 private void ExecuteExtent(XmlElement element, MagickImage image)
 {
   Hashtable arguments = new Hashtable();
   foreach (XmlAttribute attribute in element.Attributes)
   {
     if (attribute.Name == "backgroundColor")
       arguments["backgroundColor"] = Variables.GetValue<MagickColor>(attribute);
     else if (attribute.Name == "geometry")
       arguments["geometry"] = Variables.GetValue<MagickGeometry>(attribute);
     else if (attribute.Name == "gravity")
       arguments["gravity"] = Variables.GetValue<Gravity>(attribute);
     else if (attribute.Name == "height")
       arguments["height"] = Variables.GetValue<Int32>(attribute);
     else if (attribute.Name == "width")
       arguments["width"] = Variables.GetValue<Int32>(attribute);
     else if (attribute.Name == "x")
       arguments["x"] = Variables.GetValue<Int32>(attribute);
     else if (attribute.Name == "y")
       arguments["y"] = Variables.GetValue<Int32>(attribute);
   }
   if (OnlyContains(arguments, "geometry"))
     image.Extent((MagickGeometry)arguments["geometry"]);
   else if (OnlyContains(arguments, "geometry", "backgroundColor"))
     image.Extent((MagickGeometry)arguments["geometry"], (MagickColor)arguments["backgroundColor"]);
   else if (OnlyContains(arguments, "geometry", "gravity"))
     image.Extent((MagickGeometry)arguments["geometry"], (Gravity)arguments["gravity"]);
   else if (OnlyContains(arguments, "geometry", "gravity", "backgroundColor"))
     image.Extent((MagickGeometry)arguments["geometry"], (Gravity)arguments["gravity"], (MagickColor)arguments["backgroundColor"]);
   else if (OnlyContains(arguments, "width", "height"))
     image.Extent((Int32)arguments["width"], (Int32)arguments["height"]);
   else if (OnlyContains(arguments, "width", "height", "backgroundColor"))
     image.Extent((Int32)arguments["width"], (Int32)arguments["height"], (MagickColor)arguments["backgroundColor"]);
   else if (OnlyContains(arguments, "width", "height", "gravity"))
     image.Extent((Int32)arguments["width"], (Int32)arguments["height"], (Gravity)arguments["gravity"]);
   else if (OnlyContains(arguments, "width", "height", "gravity", "backgroundColor"))
     image.Extent((Int32)arguments["width"], (Int32)arguments["height"], (Gravity)arguments["gravity"], (MagickColor)arguments["backgroundColor"]);
   else if (OnlyContains(arguments, "x", "y", "width", "height"))
     image.Extent((Int32)arguments["x"], (Int32)arguments["y"], (Int32)arguments["width"], (Int32)arguments["height"]);
   else
     throw new ArgumentException("Invalid argument combination for 'extent', allowed combinations are: [geometry] [geometry, backgroundColor] [geometry, gravity] [geometry, gravity, backgroundColor] [width, height] [width, height, backgroundColor] [width, height, gravity] [width, height, gravity, backgroundColor] [x, y, width, height]");
 }
    public void Test_Extent()
    {
      using (MagickImage image = new MagickImage())
      {
        image.Read(Files.RedPNG);
        image.Resize(new MagickGeometry(100, 100));
        Assert.AreEqual(100, image.Width);
        Assert.AreEqual(33, image.Height);

        image.BackgroundColor = MagickColor.Transparent;
        image.Extent(100, 100, Gravity.Center);
        Assert.AreEqual(100, image.Width);
        Assert.AreEqual(100, image.Height);

        Test_Pixel_Equal(image, 0, 0, MagickColor.Transparent);
      }
    }
    public void Test_Composite_ChangeMask()
    {
      using (MagickImage background = new MagickImage("xc:red", 100, 100))
      {
        background.BackgroundColor = Color.White;
        background.Extent(200, 100);

        IDrawable[] drawables = new IDrawable[]
        {
          new DrawablePointSize(50),
          new DrawableText(135, 70, "X")
        };

        using (MagickImage image = background.Clone())
        {
          image.Draw(drawables);
          image.Composite(background, Gravity.Center, CompositeOperator.ChangeMask);

          using (MagickImage result = new MagickImage(MagickColor.Transparent, 200, 100))
          {
            result.Draw(drawables);
            Assert.AreEqual(0.073, result.Compare(image, ErrorMetric.RootMeanSquared), 0.001);
          }
        }
      }
    }
    public void Test_Trim()
    {
      using (MagickImage image = new MagickImage("xc:fuchsia", 50, 50))
      {
        ColorAssert.AreEqual(MagickColors.Fuchsia, image, 0, 0);
        ColorAssert.AreEqual(MagickColors.Fuchsia, image, 49, 49);

        image.Extent(100, 60, Gravity.Center, MagickColors.Gold);

        Assert.AreEqual(100, image.Width);
        Assert.AreEqual(60, image.Height);
        ColorAssert.AreEqual(MagickColors.Gold, image, 0, 0);
        ColorAssert.AreEqual(MagickColors.Fuchsia, image, 50, 30);

        image.Trim();

        Assert.AreEqual(50, image.Width);
        Assert.AreEqual(50, image.Height);
        ColorAssert.AreEqual(MagickColors.Fuchsia, image, 0, 0);
        ColorAssert.AreEqual(MagickColors.Fuchsia, image, 49, 49);
      }
    }
    public void Test_Extent()
    {
      using (MagickImage image = new MagickImage())
      {
        image.Read(Files.RedPNG);
        image.Resize(new MagickGeometry(100, 100));
        Assert.AreEqual(100, image.Width);
        Assert.AreEqual(33, image.Height);

        image.BackgroundColor = MagickColors.Transparent;
        image.Extent(100, 100, Gravity.Center);
        Assert.AreEqual(100, image.Width);
        Assert.AreEqual(100, image.Height);

        ColorAssert.AreEqual(MagickColors.Transparent, image, 0, 0);
        ColorAssert.AreEqual(MagickColors.Red, image, 15, 50);
        ColorAssert.AreEqual(new MagickColor(0, 0, 0, 0), image, 35, 35);
      }
    }