Note that there are some explanatory texts on larger screens.

plurals
  1. POPlace watermark image on other images (C#, ASP.Net)
    text
    copied!<p>How do I add a watermark image onto other images?</p> <p>I'm able to place text on an image as a water mark but now I have an image that I'd like to put on there instead of the text. How do I do this in C#?</p> <p>Just one more time to be specific, I have image X and I want to use it as a watermark symbol. I want this symbol to appear on all my image when shown on my website. So I will have image X watermarked on image Y and Z.</p> <p>Here's the code I currently have that creates the watermark:</p> <pre><code>public static void AddWaterMark(MemoryStream ms, string watermarkText, MemoryStream outputStream) { System.Drawing.Image img = System.Drawing.Image.FromStream(ms); Graphics gr = Graphics.FromImage(img); Font font = new Font("Tahoma", (float)40); Color color = Color.FromArgb(50, 241, 235, 105); double tangent = (double)img.Height / (double)img.Width; double angle = Math.Atan(tangent) * (180 / Math.PI); double halfHypotenuse = Math.Sqrt((img.Height * img.Height) + (img.Width * img.Width)) / 2; double sin, cos, opp1, adj1, opp2, adj2; for (int i = 100; i &gt; 0; i--) { font = new Font("Tahoma", i, FontStyle.Bold); SizeF sizef = gr.MeasureString(watermarkText, font, int.MaxValue); sin = Math.Sin(angle * (Math.PI / 180)); cos = Math.Cos(angle * (Math.PI / 180)); opp1 = sin * sizef.Width; adj1 = cos * sizef.Height; opp2 = sin * sizef.Height; adj2 = cos * sizef.Width; if (opp1 + adj1 &lt; img.Height &amp;&amp; opp2 + adj2 &lt; img.Width) break; // } StringFormat stringFormat = new StringFormat(); stringFormat.Alignment = StringAlignment.Center; stringFormat.LineAlignment = StringAlignment.Center; gr.SmoothingMode = SmoothingMode.AntiAlias; gr.RotateTransform((float)angle); gr.DrawString(watermarkText, font, new SolidBrush(color), new Point((int)halfHypotenuse, 0), stringFormat); img.Save(outputStream, ImageFormat.Jpeg); } </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload