/// <summary>
/// 生成水印,可按左上、左下、右上、右下、居中、透明度生成檔案,隻對jpeg或jpg格式有效!
/// </summary>
/// <param name="sourceFile">底圖</param>
/// <param name="waterMarkFile">水印圖</param>
/// <param name="saveFile">要儲存的檔案</param>
/// <param name="local">位置:左上(1)、左下(2)、右上(3)、右下(4)、居中(5)</param>
/// <param name="alpha">透明度(1-100)</param>
/// <returns>bool,是否成功</returns>
public static bool MakeWaterImage(string sourceFile,string waterMarkFile,string saveFile,int local,int alpha)
{
bool result;
if( !File.Exists(sourceFile) || !File.Exists(waterMarkFile)) //如果源圖或水印圖不存在
return false;
FileInfo fi = new FileInfo(sourceFile);
//判斷檔案類型是否合法
if(fi.Extension.ToLower()!=".jpg" & fi.Extension.ToLower()!=".jpeg")
try
{
//原圖
Bitmap sImage = new Bitmap(sourceFile);
int sWidth = sImage.Width;
int sHeight = sImage.Height;
//水印圖
Bitmap wImage = new Bitmap(waterMarkFile);
int wWidth = wImage.Width;
int wHeight = wImage.Height;
//make Graphics.
Graphics g = Graphics.FromImage(sImage);
int x; //臨時變量
int y; //監時變量
int x1 = 0; //原圖和水印圖的寬度差,即開始繪圖的X位置
int y1 = 0; //原圖和水印圖的高度差,即開始繪圖的Y位置
int w = 0; //生成的水印圖的寬度,即結束繪圖的X位置
int h = 0; //生成的水印圖的高度,即結束繪圖的Y位置
int al; //alpha
int rl; //Red
int gl; //Green
int bl; //Blue
//校驗透明度
if(alpha < 1 || alpha > 100)
al = 80;
else
al = alpha;
if(sWidth > wWidth & sHeight > wHeight) //如果源圖比水印圖大
{
switch(local)
case 1: //左上
x1 = 0;
y1 = 0;