<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <table cellpadding="4" cellspacing="3"> <tr> <td> Images: </td> <td> <asp:FileUpload ID="mainImg" runat="server" /> </td> <td> </td> </tr> <tr> <td> Watermark - Text: </td> <td> <asp:TextBox ID="txtWater" runat="server"></asp:TextBox> </td> <td> </td> </tr> <tr> <td> Watermark - Images: </td> <td> <asp:FileUpload ID="waterImg" runat="server" /> </td> <td> </td> </tr> </table> <br /> <asp:Button ID="Button1" runat="server" Text="Uplaod Image" OnClick="Button1_Click" /> <br /> <asp:Image ID="Image1" runat="server" /> </form> </body> </html> ///////////////////////////////////////////////////////////////////////////////////// using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.IO; using System.Drawing.Imaging; using System.Drawing; using System.Drawing.Drawing2D; public partial class test3 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void Button1_Click(object sender, EventArgs e) { string mainImageName = ""; string waterImageName = ""; string waterFullPath = ""; if (mainImg.HasFile) { //uplaod main image mainImageName = Path.GetFileName(mainImg.PostedFile.FileName); mainImg.PostedFile.SaveAs(Server.MapPath("upload/") + mainImageName); if (waterImg.HasFile) { //upload watermark image waterImageName = Path.GetFileName(waterImg.PostedFile.FileName); waterImg.PostedFile.SaveAs(Server.MapPath("upload/") + waterImageName); waterFullPath = Server.MapPath("upload/") + waterImageName; } ImageSetting(txtWater.Text, waterFullPath, Server.MapPath("upload/") + mainImageName, 450, 120); Image1.ImageUrl = "upload/" + mainImageName.Insert(mainImageName.LastIndexOf("."), "_new"); } } public void ImageSetting(string wmText, string wmImage, string mainImage, int xPosition, int yPosition) { byte[] imageBytes = null; if (File.Exists(mainImage)) { System.Drawing.Image image = System.Drawing.Image.FromFile(mainImage); Graphics graphic; if (image.PixelFormat != PixelFormat.Indexed && image.PixelFormat != PixelFormat.Format8bppIndexed && image.PixelFormat != PixelFormat.Format4bppIndexed && image.PixelFormat != PixelFormat.Format1bppIndexed) { // Graphic is not a Indexed (GIF) image graphic = Graphics.FromImage(image); } else { /* Cannot create a graphics object from an indexed (GIF) image. * So we're going to copy the image into a new bitmap so * we can work with it. */ Bitmap indexedImage = new Bitmap(image); graphic = Graphics.FromImage(indexedImage); // Draw the contents of the original bitmap onto the new bitmap. graphic.DrawImage(image, 0, 0, image.Width, image.Height); image = indexedImage; } graphic.SmoothingMode = SmoothingMode.AntiAlias & SmoothingMode.HighQuality; //Text Watermark properties Font myFont = new Font("Arial", 25, FontStyle.Bold); SolidBrush brush = new SolidBrush(Color.FromArgb(70, Color.White)); SizeF textSize = new SizeF(); if (wmText != "") textSize = graphic.MeasureString(wmText, myFont); //Image Watermark System.Drawing.Image ig = null; if (wmImage != "") ig = System.Drawing.Image.FromFile(wmImage); // Write the text watermark and image watermark across the main image. PointF pointF = new PointF(xPosition, yPosition); if (wmText != "") { graphic.DrawString(wmText, myFont, brush, pointF); xPosition += Convert.ToInt32(textSize.Width); } if (wmImage != "") { graphic.DrawImage(ig, pointF); xPosition += Convert.ToInt32(ig.Width); } if (wmText != "") yPosition += Convert.ToInt32(textSize.Height); if (wmImage != "") yPosition += Convert.ToInt32(ig.Height); using (MemoryStream memoryStream = new MemoryStream()) { // save image in memoryStream with it format which get it from GetImageFormat function image.Save(memoryStream, GetImageFormat(mainImage)); imageBytes = memoryStream.ToArray(); } graphic.Dispose(); } MemoryStream ms = new MemoryStream(imageBytes); System.Drawing.Image returnImage = System.Drawing.Image.FromStream(ms); //save new image and rename it; returnImage.Save(mainImage.Insert(mainImage.LastIndexOf("."), "_new")); ms.Dispose(); returnImage.Dispose(); } //function to return Image Format ImageFormat GetImageFormat(String path) { switch (Path.GetExtension(path).ToLower()) { case ".bmp": return ImageFormat.Bmp; case ".gif": return ImageFormat.Gif; case ".jpg": return ImageFormat.Jpeg; case ".png": return ImageFormat.Png; default: return null; } } } |
Search engine optimization (SEO) is important for any publically facing web-site. A large % of traffic to sites now comes directly from search engines, and improving your site’s search relevancy will lead to more users visiting your site from search engine queries. This can directly or indirectly increase the money you make through your site. This blog post covers how you can use the free Microsoft URL Rewrite Extension to fix a bunch of common SEO problems that your site might have. It takes less than 15 minutes (and no code changes) to apply 4 simple URL Rewrite rules to your site, and in doing so cause search engines to drive more visitors and traffic to your site. The techniques below work equally well with both ASP.NET Web Forms and ASP.NET MVC based sites. They also works with all versions of ASP.NET (and even work with non-ASP.NET content). [In addition to blogging, I am also now using Twitter for quick updates and to sh...
Comments
Post a Comment