/// <summary> A MagickWand extension method that overlay image. </summary>
 /// <param name="wand"> The wand to act on. </param>
 /// <param name="compose"> The compose. </param>
 /// <param name="x"> The x coordinate. </param>
 /// <param name="y"> The y coordinate. </param>
 /// <param name="width"> The width. </param>
 /// <param name="height"> The height. </param>
 /// <param name="magickwand"> The magickwand. </param>
 internal static void OverlayImage(this ImageWand wand, CompositeOperator compose, double x, double y, double width, double height, MagickWand magickwand)
 {
     using (var draw = new DrawingWand())
     {
         draw.DrawComposite(compose, x, y, width, height, magickwand.CurrentImage);
         wand.DrawImage(draw);
     }
 }
 /// <summary> A MagickWand extension method that draw circle. </summary>
 /// <param name="wand"> The wand to act on. </param>
 /// <param name="ox"> The ox. </param>
 /// <param name="oy"> The oy. </param>
 /// <param name="px"> The px. </param>
 /// <param name="py"> The py. </param>
 /// <param name="strokeColor"> The stroke color. </param>
 /// <param name="fillcolor"> The fillcolor. </param>
 internal static void DrawCircle(this ImageWand wand, double ox, double oy, double px, double py, PixelWand strokeColor, PixelWand fillcolor)
 {
     using (var draw = new DrawingWand())
     {
         draw.StrokeColor = strokeColor;
         draw.FillColor   = fillcolor;
         draw.DrawCircle(ox, oy, px, py);
         wand.DrawImage(draw);
     }
 }
 /// <summary> A MagickWand extension method that draw round rectangle. </summary>
 /// <param name="wand"> The wand to act on. </param>
 /// <param name="x1"> The first x value. </param>
 /// <param name="y1"> The first y value. </param>
 /// <param name="x2"> The second x value. </param>
 /// <param name="y2"> The second y value. </param>
 /// <param name="rx"> The receive. </param>
 /// <param name="ry"> The ry. </param>
 /// <param name="strokeColor"> The stroke color. </param>
 /// <param name="fillcolor"> The fillcolor. </param>
 internal static void DrawRoundRectangle(this ImageWand wand, double x1, double y1, double x2, double y2, double rx, double ry, PixelWand strokeColor, PixelWand fillcolor)
 {
     using (var draw = new DrawingWand())
     {
         draw.StrokeColor = strokeColor;
         draw.FillColor   = fillcolor;
         draw.DrawRoundRectangle(x1, y1, x2, y2, rx, ry);
         wand.DrawImage(draw);
     }
 }
 /// <summary> A MagickWand extension method that draw circle. </summary>
 /// <param name="wand"> The wand to act on. </param>
 /// <param name="x"> The x coordinate. </param>
 /// <param name="y"> The y coordinate. </param>
 /// <param name="p"> The double to process. </param>
 /// <param name="strokeColor"> The stroke color. </param>
 /// <param name="fillcolor"> The fillcolor. </param>
 internal static void DrawCircle(this ImageWand wand, double x, double y, double p, PixelWand strokeColor, PixelWand fillcolor)
 {
     using (var draw = new DrawingWand())
     {
         draw.StrokeColor = strokeColor;
         draw.FillColor   = fillcolor;
         draw.DrawCircle(x + p, y + p, x + p, y + p * 2);
         wand.DrawImage(draw);
     }
 }
 /// <summary> A MagickWand extension method that draw text. </summary>
 /// <param name="wand"> The wand to act on. </param>
 /// <param name="text"> The text. </param>
 /// <param name="x"> The x coordinate. </param>
 /// <param name="y"> The y coordinate. </param>
 /// <param name="fontName"> Name of the font. </param>
 /// <param name="fontSize"> Size of the font. </param>
 /// <param name="fontColor"> The font color. </param>
 /// <param name="fontWeight"> The font weight. </param>
 internal static void DrawText(this ImageWand wand, string text, double x, double y, string fontName, double fontSize, PixelWand fontColor, FontWeightType fontWeight)
 {
     using (var draw = new DrawingWand())
     {
         using (fontColor)
         {
             draw.FillColor     = fontColor;
             draw.Font          = fontName;
             draw.FontSize      = fontSize;
             draw.FontWeight    = fontWeight;
             draw.TextAntialias = true;
             draw.DrawAnnotation(x, y, text);
             wand.DrawImage(draw);
         }
     }
 }