示例#1
0
        /// <summary>
        /// Draw image watermark.
        /// <para>Notice regarding watermark opacity:</para>
        /// <para>If watermark image needs to be resized, first resize the watermark image,
        /// then save it to the disc, and read it again with Image.FromFile.</para>
        /// </summary>
        /// <param name="img">The original image</param>
        /// <param name="wmImage">Watermak image</param>
        /// <param name="ops">Image watermark options <see cref="ImageWatermarkOptions"/></param>
        public static Image AddImageWatermark(this Image img, Image wmImage, ImageWatermarkOptions ops)
        {
            if (ops.Opacity > 0)
            {
                using (var graphics = Graphics.FromImage(img))
                {
                    graphics.SmoothingMode   = SmoothingMode.None;
                    graphics.CompositingMode = CompositingMode.SourceOver;

                    if (ops.Opacity < 100)
                    {
                        wmImage = ImageOpacity.ChangeImageOpacityMethod1(wmImage, ops.Opacity);
                    }

                    var wmW = wmImage.Width;
                    var wmH = wmImage.Height;

                    var drawingPoint = ImageWatermarkPosition.ImageWatermarkPos(img.Width, img.Height, wmW, wmH, ops.Location, ops.Margin);

                    graphics.DrawImage(wmImage, drawingPoint.X, drawingPoint.Y, wmW, wmH);
                }
            }

            wmImage.Dispose();
            return(img);
        }
示例#2
0
        public static void ImageWatermark(this Image img, string wmFileName, TargetSpot spot = TargetSpot.TopRight, int margin = 10, int opacity = 35)
        {
            if (opacity > 0)
            {
                var graphics = Graphics.FromImage(img);

                graphics.SmoothingMode   = SmoothingMode.None;
                graphics.CompositingMode = CompositingMode.SourceOver;

                var wmImage = Image.FromFile(wmFileName);

                if (opacity < 100)
                {
                    wmImage = ImageOpacity.ChangeImageOpacityMethod1(wmImage, opacity);
                }

                var wmW = wmImage.Width;
                var wmH = wmImage.Height;

                var drawingPoint = ImageWatermarkPosition.ImageWatermarkPos(img.Width, img.Height, wmW, wmH, spot, margin);

                graphics.DrawImage(wmImage, drawingPoint.X, drawingPoint.Y, wmW, wmH);

                graphics.Dispose();
            }
        }