关于图片处理的代码

主要的功能
 1. Add Water Mark to Image    加图片水印, 支持自定义透明度
 2. Add Characters to Image   加文字水印
 3. Add Border to Image         加边框
 4. ReSize the Image       改变图片大小, 正在做, doing...
 5. Cut the Image        剪切图片, 还没来得及做, Next...
 6. Read Exif from Image     读取图片的 Exif 信息, 还没来得及做, Next...

ExpandedBlockStart.gifContractedBlock.gif /**/ /*
InBlock.gif * Create by Alex Bai @ 2005-04-11 23:05
InBlock.gif * 
InBlock.gif * Description: a Image Dll about Operation to Image
InBlock.gif * 
InBlock.gif * 1. Add Water Mark to Image
InBlock.gif * 2. Add Characters to Image
InBlock.gif * 3. Add Border to Image
InBlock.gif * 4. ReSize the Image                            doing
InBlock.gif * 5. Cut the Image                                Next
InBlock.gif * 6. Read Exif from Image                       Next
InBlock.gif * 
InBlock.gif * 加上了可以选择水印图片透明度的功能,但是这样需要对水印图片进行索引,比较慢
InBlock.gif * 所以如果不选择透明度的话,默认用另外一种不索引的方法
InBlock.gif * 
ExpandedBlockEnd.gif * 
*/

None.gif
using  System;
None.gif
using  System.Drawing;
None.gif
using  System.Drawing.Imaging;
None.gif
None.gif
namespace  Alex.ImageExt
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
ExpandedSubBlockStart.gifContractedSubBlock.gif    
Public Class#region Public Class
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif    
/**//// <summary>
InBlock.gif    
/// Image Ext.
ExpandedSubBlockEnd.gif    
/// </summary>

InBlock.gif    public class ImageExt
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
ExpandedSubBlockStart.gifContractedSubBlock.gif        
构造函数#region 构造函数
InBlock.gif        
public ImageExt()
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            
//
InBlock.gif            
// TODO: 在此处添加构造函数逻辑
InBlock.gif            
//
ExpandedSubBlockEnd.gif
        }

ExpandedSubBlockEnd.gif        
#endregion

InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif        
Add Water Mark to Image#region Add Water Mark to Image
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif        
Image X, Y#region Image X, Y
ExpandedSubBlockStart.gifContractedSubBlock.gif        
/**//// <summary>
InBlock.gif        
/// Draw WaterMark to Src Image
InBlock.gif        
/// </summary>
InBlock.gif        
/// <param name="srcImage">Src Image</param>
InBlock.gif        
/// <param name="waterMark">WaterMark Image</param>
InBlock.gif        
/// <param name="x">WaterMark's Location X</param>
InBlock.gif        
/// <param name="y">WaterMark's Location Y</param>
ExpandedSubBlockEnd.gif        
/// <returns>Image</returns>

InBlock.gif        public Image DrawWaterMark(Image srcImage, Image waterMark, int x, int y)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            Graphics g 
= Graphics.FromImage(srcImage);
InBlock.gif
InBlock.gif            g.DrawImage(waterMark, x, y);
InBlock.gif
InBlock.gif            g.Dispose();
InBlock.gif            
return srcImage;
ExpandedSubBlockEnd.gif        }

ExpandedSubBlockEnd.gif        
#endregion

InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif        
Image X, Y + Alpha Rate#region Image X, Y + Alpha Rate
ExpandedSubBlockStart.gifContractedSubBlock.gif        
/**//// <summary>
InBlock.gif        
/// Draw WaterMark to Src Image
InBlock.gif        
/// </summary>
InBlock.gif        
/// <param name="srcImage">Src Image</param>
InBlock.gif        
/// <param name="waterMark">WaterMark Image</param>
InBlock.gif        
/// <param name="x">WaterMark's Location X</param>
InBlock.gif        
/// <param name="y">WaterMark's Location Y</param>
InBlock.gif        
/// <param name="alphaRate">WaterMark's alpha rate, 0 to 255, 0 means total transparent, 255 means don't transparent</param>
ExpandedSubBlockEnd.gif        
/// <returns>Image</returns>

InBlock.gif        public Image DrawWaterMark(Image srcImage, Image waterMark, int x, int y, int alphaRate)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            Graphics g 
= Graphics.FromImage(srcImage);
InBlock.gif        
InBlock.gif            
if(alphaRate < 0 || alphaRate > 255)
InBlock.gif                alphaRate 
= 255;
InBlock.gif
InBlock.gif            
//Transfer Image to Bitmap to Get Pixel
InBlock.gif
            Bitmap bmWaterMark = new Bitmap(waterMark);
InBlock.gif
InBlock.gif            
for(int ix = 0; ix < waterMark.Width; ix ++)
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                
for(int iy = 0; iy < waterMark.Height; iy ++)
ExpandedSubBlockStart.gifContractedSubBlock.gif                
dot.gif{
InBlock.gif                    
int ir = bmWaterMark.GetPixel(ix, iy).R;
InBlock.gif                    
int ig = bmWaterMark.GetPixel(ix, iy).G;
InBlock.gif                    
int ib = bmWaterMark.GetPixel(ix, iy).B;
InBlock.gif
InBlock.gif                    g.DrawEllipse(
new Pen(new SolidBrush(Color.FromArgb(alphaRate, ir, ig, ib))), x + ix, y + iy, 11);
ExpandedSubBlockEnd.gif                }

ExpandedSubBlockEnd.gif            }

InBlock.gif
InBlock.gif            g.Dispose();
InBlock.gif            
return srcImage;
ExpandedSubBlockEnd.gif        }

InBlock.gif
ExpandedSubBlockEnd.gif        
#endregion

InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif        
Image Postion#region Image Postion
ExpandedSubBlockStart.gifContractedSubBlock.gif        
/**//// <summary>
InBlock.gif        
/// Draw WaterMark to Src Image
InBlock.gif        
/// </summary>
InBlock.gif        
/// <param name="srcImage">Src Image</param>
InBlock.gif        
/// <param name="waterMark">WaterMark Image</param>
InBlock.gif        
/// <param name="oPosition">WaterMark's position</param>
ExpandedSubBlockEnd.gif        
/// <returns>Image</returns>

InBlock.gif        public Image DrawWaterMark(Image srcImage, Image waterMark, ImagePostion oPosition)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            
int x = 0;
InBlock.gif            
int y = 0;
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif            
Switch Postion get X and Y#region Switch Postion get X and Y
InBlock.gif            
switch(oPosition)
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                
case ImagePostion.TopLeft :
InBlock.gif                    x 
= 0;
InBlock.gif                    y 
= 0;
InBlock.gif                    
break;
InBlock.gif                
case ImagePostion.TopCenter :
InBlock.gif                    x 
= (srcImage.Width / 2- (waterMark.Width / 2);
InBlock.gif                    y 
= 0;
InBlock.gif                    
break;
InBlock.gif                
case ImagePostion.TopRight :
InBlock.gif                    x 
= srcImage.Width - waterMark.Width;
InBlock.gif                    y 
= 0;
InBlock.gif                    
break;
InBlock.gif                
case ImagePostion.MiddleLeft :
InBlock.gif                    x 
= 0;
InBlock.gif                    y 
= (srcImage.Height / 2- (waterMark.Height / 2);
InBlock.gif                    
break;
InBlock.gif                
case ImagePostion.MiddleMost :
InBlock.gif                    x 
= (srcImage.Width / 2- (waterMark.Width / 2);
InBlock.gif                    y 
= (srcImage.Height / 2- (waterMark.Height / 2);
InBlock.gif                    
break;
InBlock.gif                
case ImagePostion.MiddleRight :
InBlock.gif                    x 
= srcImage.Width - waterMark.Width;
InBlock.gif                    y 
= (srcImage.Height / 2- (waterMark.Height / 2);
InBlock.gif                    
break;
InBlock.gif                
case ImagePostion.BottomLeft :
InBlock.gif                    x 
= 0;
InBlock.gif                    y 
= srcImage.Height - waterMark.Height;
InBlock.gif                    
break;
InBlock.gif                
case ImagePostion.BottomCenter :
InBlock.gif                    x 
= (srcImage.Width / 2- (waterMark.Width / 2);
InBlock.gif                    y 
= srcImage.Height - waterMark.Height;
InBlock.gif                    
break;
InBlock.gif                
case ImagePostion.BottonRight :
InBlock.gif                    x 
= srcImage.Width - waterMark.Width;
InBlock.gif                    y 
= srcImage.Height - waterMark.Height;
InBlock.gif                    
break;
InBlock.gif                
default :
InBlock.gif                    
break;
ExpandedSubBlockEnd.gif            }

ExpandedSubBlockEnd.gif            
#endregion

InBlock.gif
InBlock.gif            srcImage 
= DrawWaterMark(srcImage, waterMark, x, y);
InBlock.gif
InBlock.gif            
return srcImage;
ExpandedSubBlockEnd.gif        }

ExpandedSubBlockEnd.gif        
#endregion

InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif        
Image Postion + Alpha Rate#region Image Postion + Alpha Rate
ExpandedSubBlockStart.gifContractedSubBlock.gif        
/**//// <summary>
InBlock.gif        
/// Draw WaterMark to Src Image
InBlock.gif        
/// </summary>
InBlock.gif        
/// <param name="srcImage">Src Image</param>
InBlock.gif        
/// <param name="waterMark">WaterMark Image</param>
InBlock.gif        
/// <param name="oPosition">WaterMark's position</param>
InBlock.gif        
/// <param name="alphaRate">WaterMark's alpha rate, 0 to 255, 0 means total transparent, 255 means don't transparent</param>
ExpandedSubBlockEnd.gif        
/// <returns>Image</returns>

InBlock.gif        public Image DrawWaterMark(Image srcImage, Image waterMark, ImagePostion oPosition, int alphaRate)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            
int x = 0;
InBlock.gif            
int y = 0;
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif            
Switch Postion get X and Y#region Switch Postion get X and Y
InBlock.gif            
switch(oPosition)
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                
case ImagePostion.TopLeft :
InBlock.gif                    x 
= 0;
InBlock.gif                    y 
= 0;
InBlock.gif                    
break;
InBlock.gif                
case ImagePostion.TopCenter :
InBlock.gif                    x 
= (srcImage.Width / 2- (waterMark.Width / 2);
InBlock.gif                    y 
= 0;
InBlock.gif                    
break;
InBlock.gif                
case ImagePostion.TopRight :
InBlock.gif                    x 
= srcImage.Width - waterMark.Width;
InBlock.gif                    y 
= 0;
InBlock.gif                    
break;
InBlock.gif                
case ImagePostion.MiddleLeft :
InBlock.gif                    x 
= 0;
InBlock.gif                    y 
= (srcImage.Height / 2- (waterMark.Height / 2);
InBlock.gif                    
break;
InBlock.gif                
case ImagePostion.MiddleMost :
InBlock.gif                    x 
= (srcImage.Width / 2- (waterMark.Width / 2);
InBlock.gif                    y 
= (srcImage.Height / 2- (waterMark.Height / 2);
InBlock.gif                    
break;
InBlock.gif                
case ImagePostion.MiddleRight :
InBlock.gif                    x 
= srcImage.Width - waterMark.Width;
InBlock.gif                    y 
= (srcImage.Height / 2- (waterMark.Height / 2);
InBlock.gif                    
break;
InBlock.gif                
case ImagePostion.BottomLeft :
InBlock.gif                    x 
= 0;
InBlock.gif                    y 
= srcImage.Height - waterMark.Height;
InBlock.gif                    
break;
InBlock.gif                
case ImagePostion.BottomCenter :
InBlock.gif                    x 
= (srcImage.Width / 2- (waterMark.Width / 2);
InBlock.gif                    y 
= srcImage.Height - waterMark.Height;
InBlock.gif                    
break;
InBlock.gif                
case ImagePostion.BottonRight :
InBlock.gif                    x 
= srcImage.Width - waterMark.Width;
InBlock.gif                    y 
= srcImage.Height - waterMark.Height;
InBlock.gif                    
break;
InBlock.gif                
default :
InBlock.gif                    
break;
ExpandedSubBlockEnd.gif            }

ExpandedSubBlockEnd.gif            
#endregion

InBlock.gif
InBlock.gif            srcImage 
= DrawWaterMark(srcImage, waterMark, x, y, alphaRate);
InBlock.gif
InBlock.gif            
return srcImage;
ExpandedSubBlockEnd.gif        }

InBlock.gif
ExpandedSubBlockEnd.gif        
#endregion

InBlock.gif        
ExpandedSubBlockEnd.gif        
#endregion

InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif        
Add Characters To Image#region Add Characters To Image
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif        
Text X, Y#region Text X, Y
ExpandedSubBlockStart.gifContractedSubBlock.gif        
/**//// <summary>
InBlock.gif        
/// Draw Characters to Image
InBlock.gif        
/// </summary>
InBlock.gif        
/// <param name="srcImage">Src Image</param>
InBlock.gif        
/// <param name="text">Text to add</param>
InBlock.gif        
/// <param name="textFont">Font of Text</param>
InBlock.gif        
/// <param name="textSize">Size of Text</param>
InBlock.gif        
/// <param name="textColor">Color of Text</param>
InBlock.gif        
/// <param name="x">Text's Location X</param>
InBlock.gif        
/// <param name="y">Text's Location Y</param>
ExpandedSubBlockEnd.gif        
/// <returns>Image</returns>

InBlock.gif        public Image DrawCharacter(Image srcImage, string text, string textFont, float textSize, Color textColor, float x, float y)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            Graphics g 
= Graphics.FromImage(srcImage);
InBlock.gif            Font f 
= new Font(textFont, textSize);
InBlock.gif            Brush b 
= new SolidBrush(textColor);
InBlock.gif
InBlock.gif            g.DrawString(text, f, b, x, y);
InBlock.gif            g.Dispose();
InBlock.gif
InBlock.gif            
return srcImage;
ExpandedSubBlockEnd.gif        }

InBlock.gif
ExpandedSubBlockEnd.gif        
#endregion

InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif        
Text Postion#region Text Postion
ExpandedSubBlockStart.gifContractedSubBlock.gif        
/**//// <summary>
InBlock.gif        
/// Draw Characters to Image
InBlock.gif        
/// </summary>
InBlock.gif        
/// <param name="srcImage">Src Image</param>
InBlock.gif        
/// <param name="text">Text to add</param>
InBlock.gif        
/// <param name="textFont">Font of Text</param>
InBlock.gif        
/// <param name="textSize">Size of Text</param>
InBlock.gif        
/// <param name="textColor">Color of Text</param>
InBlock.gif        
/// <param name="oPosition">Position of Text</param>
ExpandedSubBlockEnd.gif        
/// <returns>Image</returns>

InBlock.gif        public Image DrawCharacter(Image srcImage, string text, string textFont, float textSize, Color textColor, ImagePostion oPosition)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            
float x = 0;
InBlock.gif            
float y = 0;
InBlock.gif
InBlock.gif            
//Get the text's Width and Height
InBlock.gif
            Bitmap bm = new Bitmap(00);
InBlock.gif            Graphics g 
= Graphics.FromImage(bm);
InBlock.gif            Font f 
= new Font(textFont, textSize);
InBlock.gif            SizeF size 
=g.MeasureString(text, f);
InBlock.gif            
//float textLength = text.Length * textSize;
InBlock.gif
            float textWidth = size.Width;
InBlock.gif            
float textHeight = size.Height;
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif            
Switch Postion get X and Y#region Switch Postion get X and Y
InBlock.gif            
switch(oPosition)
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                
case ImagePostion.TopLeft :
InBlock.gif                    x 
= 0;
InBlock.gif                    y 
= 0;
InBlock.gif                    
break;
InBlock.gif                
case ImagePostion.TopCenter :
InBlock.gif                    x 
= (srcImage.Width / 2- (textWidth / 2);
InBlock.gif                    y 
= 0;
InBlock.gif                    
break;
InBlock.gif                
case ImagePostion.TopRight :
InBlock.gif                    x 
= srcImage.Width - textWidth;
InBlock.gif                    y 
= 0;
InBlock.gif                    
break;
InBlock.gif                
case ImagePostion.MiddleLeft :
InBlock.gif                    x 
= 0;
InBlock.gif                    y 
= (srcImage.Height / 2- (textHeight / 2);
InBlock.gif                    
break;
InBlock.gif                
case ImagePostion.MiddleMost :
InBlock.gif                    x 
= (srcImage.Width / 2- (textWidth / 2);
InBlock.gif                    y 
= (srcImage.Height / 2- (textHeight / 2);
InBlock.gif                    
break;
InBlock.gif                
case ImagePostion.MiddleRight :
InBlock.gif                    x 
= srcImage.Width - textWidth;
InBlock.gif                    y 
= (srcImage.Height / 2- (textHeight / 2);
InBlock.gif                    
break;
InBlock.gif                
case ImagePostion.BottomLeft :
InBlock.gif                    x 
= 0;
InBlock.gif                    y 
= srcImage.Height - textSize;
InBlock.gif                    
break;
InBlock.gif                
case ImagePostion.BottomCenter :
InBlock.gif                    x 
= (srcImage.Width / 2- (textWidth / 2);
InBlock.gif                    y 
= srcImage.Height - textHeight;
InBlock.gif                    
break;
InBlock.gif                
case ImagePostion.BottonRight :
InBlock.gif                    x 
= srcImage.Width - textWidth;
InBlock.gif                    y 
= srcImage.Height - textHeight;
InBlock.gif                    
break;
InBlock.gif                
default :
InBlock.gif                    
break;
ExpandedSubBlockEnd.gif            }

ExpandedSubBlockEnd.gif            
#endregion

InBlock.gif
InBlock.gif            srcImage 
= DrawCharacter(srcImage, text, textFont, textSize, textColor, x, y);
InBlock.gif
InBlock.gif            
return srcImage;
ExpandedSubBlockEnd.gif        }

InBlock.gif
ExpandedSubBlockEnd.gif        
#endregion

InBlock.gif        
ExpandedSubBlockEnd.gif        
#endregion

InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif        
Add Border to Image#region Add Border to Image
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif        
BorderStyle#region BorderStyle
ExpandedSubBlockStart.gifContractedSubBlock.gif        
/**//// <summary>
InBlock.gif        
/// Add Border to Image
InBlock.gif        
/// </summary>
InBlock.gif        
/// <param name="srcImage">Src Image</param>
InBlock.gif        
/// <param name="borderColor">Border Color</param>
InBlock.gif        
/// <param name="borderSize">Border Size</param>
InBlock.gif        
/// <param name="borderStyle">Border Style, Default All</param>
ExpandedSubBlockEnd.gif        
/// <returns>Image</returns>

InBlock.gif        public Image AddBorder(Image srcImage, Color borderColor, int borderWidth, BorderStyle borderStyle)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            Graphics g 
= Graphics.FromImage(srcImage);
InBlock.gif        
InBlock.gif            Pen oPen 
= new Pen(borderColor, borderWidth);
InBlock.gif
InBlock.gif            
int x = 0;
InBlock.gif            
int y = 0;
InBlock.gif            
int width = 0;
InBlock.gif            
int height = 0;
InBlock.gif
InBlock.gif            
switch(borderStyle)
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                
case BorderStyle.All:
InBlock.gif                    AddBorder(srcImage, borderColor, borderWidth);
InBlock.gif                    
return srcImage;
InBlock.gif                
case BorderStyle.Top:
InBlock.gif                    width 
= srcImage.Width;
InBlock.gif                    height 
= borderWidth;
InBlock.gif                    
break;
InBlock.gif                
case BorderStyle.Left:
InBlock.gif                    width 
= borderWidth;
InBlock.gif                    height 
= srcImage.Height;
InBlock.gif                    
break;
InBlock.gif                
case BorderStyle.Right:
InBlock.gif                    x 
= srcImage.Width - borderWidth;
InBlock.gif                    width 
= borderWidth;
InBlock.gif                    height 
= srcImage.Height;
InBlock.gif                    
break;
InBlock.gif                
case BorderStyle.Bottom:
InBlock.gif                    y 
= srcImage.Height - borderWidth;
InBlock.gif                    width 
= srcImage.Width;
InBlock.gif                    height 
= borderWidth;
InBlock.gif                    
break;
ExpandedSubBlockEnd.gif            }

InBlock.gif
InBlock.gif            g.DrawRectangle(oPen, x, y, width, height);
InBlock.gif
InBlock.gif            
return srcImage;
ExpandedSubBlockEnd.gif        }

ExpandedSubBlockEnd.gif        
#endregion

InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif        
Border Style Default All#region Border Style Default All
ExpandedSubBlockStart.gifContractedSubBlock.gif        
/**//// <summary>
InBlock.gif        
/// Add Border to Image
InBlock.gif        
/// </summary>
InBlock.gif        
/// <param name="srcImage">Src Image</param>
InBlock.gif        
/// <param name="borderColor">Border Color</param>
InBlock.gif        
/// <param name="borderSize">Border Size</param>
ExpandedSubBlockEnd.gif        
/// <returns></returns>

InBlock.gif        public Image AddBorder(Image srcImage, Color borderColor, int borderWidth)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            Graphics g 
= Graphics.FromImage(srcImage);
InBlock.gif        
InBlock.gif            Pen oPen 
= new Pen(borderColor, borderWidth);
InBlock.gif
InBlock.gif            
int x = 0;
InBlock.gif            
int y = 0;
InBlock.gif            
int width = 0;
InBlock.gif            
int height = 0;
InBlock.gif
InBlock.gif            
//依次按照上左右下的顺序开始绘制边框
InBlock.gif
InBlock.gif            
//Top
InBlock.gif
            width = srcImage.Width;
InBlock.gif            height 
= borderWidth;
InBlock.gif            g.DrawRectangle(oPen, x, y, width, height);
InBlock.gif
InBlock.gif            
//Left
InBlock.gif
            width = borderWidth;
InBlock.gif            height 
= srcImage.Height;
InBlock.gif            g.DrawRectangle(oPen, x, y, width, height);
InBlock.gif
InBlock.gif            
//Right
InBlock.gif
            x = srcImage.Width - borderWidth;
InBlock.gif            width 
= borderWidth;
InBlock.gif            height 
= srcImage.Height;
InBlock.gif            g.DrawRectangle(oPen, x, y, width, height);
InBlock.gif
InBlock.gif            
//Bottom
InBlock.gif
            x = 0;
InBlock.gif            y 
= srcImage.Height - borderWidth;
InBlock.gif            width 
= srcImage.Width;
InBlock.gif            height 
= borderWidth;
InBlock.gif            g.DrawRectangle(oPen, x, y, width, height);
InBlock.gif
InBlock.gif            
return srcImage;
ExpandedSubBlockEnd.gif        }

ExpandedSubBlockEnd.gif        
#endregion

InBlock.gif
ExpandedSubBlockEnd.gif        
#endregion

InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif        
ReSize the Image#region ReSize the Image
InBlock.gif        
public Image ReSizeImage(Image srcImage)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            
InBlock.gif
InBlock.gif            
return srcImage;
ExpandedSubBlockEnd.gif        }

ExpandedSubBlockEnd.gif        
#endregion

InBlock.gif
ExpandedSubBlockEnd.gif    }

InBlock.gif
ExpandedSubBlockEnd.gif    
#endregion

InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif    
Public Enum#region Public Enum
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif    
Positon Enum#region Positon Enum
ExpandedSubBlockStart.gifContractedSubBlock.gif    
/**//// <summary>
InBlock.gif    
/// Water Mark Positon Enum, Total 9 positions
ExpandedSubBlockEnd.gif    
/// </summary>

InBlock.gif    public enum ImagePostion
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        TopLeft,
InBlock.gif        TopCenter,
InBlock.gif        TopRight,
InBlock.gif        MiddleLeft,
InBlock.gif        MiddleMost,
InBlock.gif        MiddleRight,
InBlock.gif        BottomLeft,
InBlock.gif        BottomCenter,
InBlock.gif        BottonRight
ExpandedSubBlockEnd.gif    }

ExpandedSubBlockEnd.gif    
#endregion

InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif    
Border Style Enum#region Border Style Enum
ExpandedSubBlockStart.gifContractedSubBlock.gif    
/**//// <summary>
InBlock.gif    
/// Border Style
ExpandedSubBlockEnd.gif    
/// </summary>

InBlock.gif    public enum BorderStyle
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        All,
InBlock.gif        Top,
InBlock.gif        Left,
InBlock.gif        Right,
InBlock.gif        Bottom
ExpandedSubBlockEnd.gif    }

ExpandedSubBlockEnd.gif    
#endregion

InBlock.gif
ExpandedSubBlockEnd.gif    
#endregion

InBlock.gif
ExpandedBlockEnd.gif}

转载于:https://www.cnblogs.com/jhobo/archive/2006/08/23/484061.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值