C # add layer to image

I would like to add a layer to the image with the company logo.

The logo should be located in the center of the image (slight opacity).

How can i do this?

+6
c # image
source share
1 answer

Here is the one I made earlier that creates a new icon for some images:

EDIT, I developed a function that I supply maxWidth and maxHeight, it resizes without distortion.

Requirements:

using System.IO; using System.Drawing; using System.Drawing.Drawing2D; using System.Drawing.Imaging; 

The code

  using (Image i = Image.FromFile(HttpContext.Current.Server.MapPath(fileName))) { float imageWidth = i.PhysicalDimension.Width; float imageHeight = i.PhysicalDimension.Height; float percentage = maxWidth / imageWidth; float newWidth = imageWidth * percentage; float newHeight = imageHeight * percentage; if (newHeight > maxHeight) { percentage = maxHeight / newHeight; newWidth = newWidth * percentage; newHeight = newHeight * percentage; } using (Bitmap b = new Bitmap((int)newWidth, (int)newHeight)) { using (Graphics g = Graphics.FromImage(b)) { g.InterpolationMode = InterpolationMode.HighQualityBicubic; g.SmoothingMode = SmoothingMode.AntiAlias; g.PixelOffsetMode = PixelOffsetMode.HighQuality; g.CompositingQuality = CompositingQuality.HighQuality; g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias; g.DrawImage(i, new Rectangle(0, 0, b.Width, b.Height)); if (effect == "new") { using (Image j = Image.FromFile(HttpContext.Current.Server.MapPath("/ImageEffects/") + "new.png", true)) { g.DrawImage(j, new Rectangle(0, 0, 60, 60)); } } Image newImage = Image.FromHbitmap(b.GetHbitmap()); return newImage; } } } } 
+6
source share

All Articles