欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來(lái)到入門(mén)教程網(wǎng)!

C#教程

當(dāng)前位置:主頁(yè) > 軟件編程 > C#教程 >

C#向圖片添加水印的兩種不同場(chǎng)景與解決方法

來(lái)源:本站原創(chuàng)|時(shí)間:2020-01-10|欄目:C#教程|點(diǎn)擊: 次

場(chǎng)景一

也就是大家經(jīng)常用的,一般是圖片的4個(gè)角落,基于橫縱坐標(biāo)來(lái)添加。

效果如下:

添加水印方法

static void addWatermarkText(Graphics picture,int fontsize, string _watermarkText, string _watermarkPosition, int _width, int _height)
  {
   int[] sizes = new int[] {32, 14, 12, 10, 8, 6, 4 };
   Font crFont = null;
   SizeF crSize = new SizeF();
 
   crFont = new Font("微軟雅黑", fontsize, FontStyle.Bold);
   crSize = picture.MeasureString(_watermarkText, crFont);
 
   float xpos = 0;
   float ypos = 0;
   Color color =Color.Firebrick;
 
   switch (_watermarkPosition)
   {
    case "WM_TOP_LEFT":
     xpos = ((float)_width * (float).01) + (crSize.Width / 2);
     ypos = (float)_height * (float).01;
     break;
    case "WM_TOP_RIGHT":
     xpos = ((float)_width * (float).99) - (crSize.Width / 2);
     ypos = (float)_height * (float).01;
     break;
    case "WM_BOTTOM_RIGHT":
     xpos = ((float)_width * (float).99) - (crSize.Width / 2);
     ypos = ((float)_height * (float).99) - crSize.Height;
     break;
    case "WM_BOTTOM_LEFT":
     xpos = ((float)_width * (float).01) + (crSize.Width / 2);
     ypos = ((float)_height * (float).99) - crSize.Height;
     break;
     
   }
    
   StringFormat StrFormat = new StringFormat();
   StrFormat.Alignment = StringAlignment.Center;
   SolidBrush semiTransBrush2 = new SolidBrush(Color.FromArgb(153, 0, 0, 0));//加陰影
   picture.DrawString(_watermarkText, crFont, semiTransBrush2, xpos + 1, ypos + 1, StrFormat);
 
   SolidBrush semiTransBrush = new SolidBrush(color); //添加水印
   picture.DrawString(_watermarkText, crFont, semiTransBrush, xpos, ypos, StrFormat);
 
   semiTransBrush2.Dispose();
   semiTransBrush.Dispose();
  }

場(chǎng)景二

在圖片內(nèi)基于固定位置,文字始終居中。剛開(kāi)始我基于第一種場(chǎng)景來(lái)根據(jù)水印漢字的長(zhǎng)度來(lái)計(jì)算坐標(biāo),后來(lái)發(fā)現(xiàn)方法始終不可靠?,F(xiàn)在是先在圖片固定區(qū)域(水印區(qū)域)畫(huà)一個(gè)矩形,然后再矩形內(nèi)添加水印漢字,并使用畫(huà)刷保持文字居中。

效果圖如下

添加水印的方法

static void addWatermarkText(Graphics picture,string type, int fontsize, string _watermarkText)
  {
   //1、先畫(huà)矩形
   RectangleF drawRect;
   Color color;
   if (type == "Top")
   {
     drawRect = new RectangleF(73, 135, 450, 64);
     color = Color.FromArgb(255, 255, 255);
   }
   else
   {
     drawRect = new RectangleF(194, 245, 250, 39);
     color = Color.FromArgb(244, 226, 38);
   }
    
   //2、在基于矩形畫(huà)水印文字
   Font crFont = null;
 
   StringFormat StrFormat = new StringFormat();
   StrFormat.Alignment = StringAlignment.Center;
 
   crFont = new Font("微軟雅黑", fontsize, FontStyle.Bold);
   SolidBrush semiTransBrush = new SolidBrush(color); //添加水印
   picture.DrawString(_watermarkText, crFont, semiTransBrush, drawRect, StrFormat);
 
   semiTransBrush.Dispose();
  }

總結(jié)

和第一種方法比起來(lái),第二種方法更直觀,更短小精悍,只需要在你需要添加水印的圖片上計(jì)算好固定坐標(biāo)然后先畫(huà)一個(gè)矩形,然后把水印漢字畫(huà)在矩形內(nèi),這樣不管水印漢字如何變化都可以在圖片固定位置居中。以上就是這篇文章的全部?jī)?nèi)容,希望能對(duì)大家的學(xué)習(xí)或者工作帶來(lái)一定的幫助。

上一篇:C#給Excel添加水印實(shí)例詳解

欄    目:C#教程

下一篇:C# 6.0 新特性匯總

本文標(biāo)題:C#向圖片添加水印的兩種不同場(chǎng)景與解決方法

本文地址:http://mengdiqiu.com.cn/a1/C_jiaocheng/6246.html

網(wǎng)頁(yè)制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語(yǔ)言數(shù)據(jù)庫(kù)服務(wù)器

如果侵犯了您的權(quán)利,請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有