1. 程式人生 > >分享一段,圖片加水印的代碼。本人修改過多次

分享一段,圖片加水印的代碼。本人修改過多次

lar aws span idt regular rpo 背景 ram wid

        /// <summary>
        /// 圖片加水印文字
        /// </summary>
        /// <param name="imgPath">原圖片路徑</param>
        /// <param name="newImgPath">新圖片路徑</param>
        /// <param name="text">水印文字</param>
        /// <param name="Alpha">透明度</param>
        ///
<param name="fontsize">字體大小</param> public static bool PicAddWaterText(string imgPath,string newImgPath, string text, int Alpha = 1, int fontsize = 30) { try { //text = text + "僅限xx使用"; //System.Drawing.Image imgPhoto = System.Drawing.Image.FromStream(oldstream);
//文件流 System.Drawing.Image imgPhoto = System.Drawing.Image.FromFile(imgPath); int imgPhotoWidth = imgPhoto.Width; int imgPhotoHeight = imgPhoto.Height; Bitmap bmPhoto = new Bitmap(imgPhotoWidth, imgPhotoHeight, System.Drawing.Imaging.PixelFormat.Format24bppRgb); bmPhoto.SetResolution(
72, 72); Graphics gbmPhoto = Graphics.FromImage(bmPhoto); //gif背景色 gbmPhoto.Clear(Color.FromName("White")); gbmPhoto.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High; gbmPhoto.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; gbmPhoto.DrawImage(imgPhoto, new Rectangle(0, 0, imgPhotoWidth, imgPhotoHeight), 0, 0, imgPhotoWidth, imgPhotoHeight, GraphicsUnit.Pixel); imgPhoto.Dispose(); System.Drawing.Font font = null; System.Drawing.SizeF crSize = new SizeF(); font = new Font("宋體", fontsize, FontStyle.Regular); //測量指定區域 crSize = gbmPhoto.MeasureString(text, font); float y = (imgPhotoHeight - crSize.Height)/2; float x = (imgPhotoWidth - crSize.Width)/2; System.Drawing.StringFormat StrFormat = new System.Drawing.StringFormat(); StrFormat.Alignment = System.Drawing.StringAlignment.Center; //畫兩次制造透明效果 var writeColor = Color.FromArgb(Alpha, System.Drawing.ColorTranslator.FromHtml("#999")); //var writeColor = Color.FromArgb(255, Color.Red); //System.Drawing.SolidBrush semiTransBrush2 = new System.Drawing.SolidBrush(Color.FromArgb(Alpha, Color.Red)); System.Drawing.SolidBrush semiTransBrush2 = new System.Drawing.SolidBrush(writeColor); //float _x = -20, _y = y + 10; //if (imgPhotoHeight > imgPhotoWidth) //{ // // gbmPhoto.RotateTransform(-60); // _y = 0; _x = 0; //} //else { gbmPhoto.RotateTransform(320); } gbmPhoto.TranslateTransform(x,y); var Var_trans = gbmPhoto.Transform; Var_trans.Shear(0.4F,0.00F); gbmPhoto.Transform = Var_trans; //gbmPhoto.DrawString(text, font, semiTransBrush2, _x, _y); // gbmPhoto.DrawString(text, font, semiTransBrush2, imgPhotoWidth, imgPhotoHeight / 2); gbmPhoto.DrawString(text, font, semiTransBrush2, 10, 10); //gbmPhoto.DrawString(text, font, semiTransBrush2, 0, y); //System.Drawing.SolidBrush semiTransBrush = new System.Drawing.SolidBrush(writeColor); // gbmPhoto.DrawString(text, font, semiTransBrush, _x, _y); //gbmPhoto.DrawString(text, font, semiTransBrush, imgPhotoWidth / 2, imgPhotoHeight / 2); //gbmPhoto.DrawString(text, font, semiTransBrush, 0, y); //gbmPhoto.DrawString(text, font, semiTransBrush2, 0, y); //Stream newStream = new MemoryStream(); bmPhoto.Save(newImgPath, System.Drawing.Imaging.ImageFormat.Jpeg); gbmPhoto.Dispose(); bmPhoto.Dispose(); //imgPhoto1.Dispose(); return true; } catch (Exception e) { return false; } }

分享一段,圖片加水印的代碼。本人修改過多次