一个C#写的图片处理基础类,功能包括获取或设置要修改的图像路径、获取或设置在画的图片路径(水印图片)、获取或设置水印在修改图片中的右边距、获取或设置水印在修改图片中距底部的高度、获取或设置要绘制水印的透明度,注意是原来图片透明度的百分比、获取或设置要输出图像的路径、绘制水印、绘制图形坐标、绘制阴影图像、保存文件等功能:dZMHTML5中文学习网 - HTML5先行者学习网
  view sourceprint?001using System;dZMHTML5中文学习网 - HTML5先行者学习网
  002using System.Collections.Generic;dZMHTML5中文学习网 - HTML5先行者学习网
  003using System.Linq;dZMHTML5中文学习网 - HTML5先行者学习网
  004using System.Text;dZMHTML5中文学习网 - HTML5先行者学习网
  005using System.IO;dZMHTML5中文学习网 - HTML5先行者学习网
  006using System.Drawing;dZMHTML5中文学习网 - HTML5先行者学习网
  007using System.Drawing.Drawing2D;dZMHTML5中文学习网 - HTML5先行者学习网
  008using System.Drawing.Imaging;dZMHTML5中文学习网 - HTML5先行者学习网
  009namespace CLB.Utility.ToolsdZMHTML5中文学习网 - HTML5先行者学习网
  010{dZMHTML5中文学习网 - HTML5先行者学习网
  011 public class ImageModificationdZMHTML5中文学习网 - HTML5先行者学习网
  012 {dZMHTML5中文学习网 - HTML5先行者学习网
  013 #region "member fields"dZMHTML5中文学习网 - HTML5先行者学习网
  014 private string modifyImagePath = null;dZMHTML5中文学习网 - HTML5先行者学习网
  015 private string drawedImagePath = null;dZMHTML5中文学习网 - HTML5先行者学习网
  016 private int rightSpace;dZMHTML5中文学习网 - HTML5先行者学习网
  017 private int bottoamSpace;dZMHTML5中文学习网 - HTML5先行者学习网
  018 private int lucencyPercent = 70;dZMHTML5中文学习网 - HTML5先行者学习网
  019 private string outPath = null;dZMHTML5中文学习网 - HTML5先行者学习网
  020 #endregiondZMHTML5中文学习网 - HTML5先行者学习网
  021 public ImageModification()dZMHTML5中文学习网 - HTML5先行者学习网
  022 {dZMHTML5中文学习网 - HTML5先行者学习网
  023 }dZMHTML5中文学习网 - HTML5先行者学习网
  024 #region "propertys"dZMHTML5中文学习网 - HTML5先行者学习网
  025 ///dZMHTML5中文学习网 - HTML5先行者学习网
  026 /// 获取或设置要修改的图像路径dZMHTML5中文学习网 - HTML5先行者学习网
  027 ///dZMHTML5中文学习网 - HTML5先行者学习网
  028 public string ModifyImagePathdZMHTML5中文学习网 - HTML5先行者学习网
  029 {dZMHTML5中文学习网 - HTML5先行者学习网
  030 get { return this.modifyImagePath; }dZMHTML5中文学习网 - HTML5先行者学习网
  031 set { this.modifyImagePath = value; }dZMHTML5中文学习网 - HTML5先行者学习网
  032 }dZMHTML5中文学习网 - HTML5先行者学习网
  033 ///dZMHTML5中文学习网 - HTML5先行者学习网
  034 /// 获取或设置在画的图片路径(水印图片)dZMHTML5中文学习网 - HTML5先行者学习网
  035 ///dZMHTML5中文学习网 - HTML5先行者学习网
  036 public string DrawedImagePathdZMHTML5中文学习网 - HTML5先行者学习网
  037 {dZMHTML5中文学习网 - HTML5先行者学习网
  038 get { return this.drawedImagePath; }dZMHTML5中文学习网 - HTML5先行者学习网
  039 set { this.drawedImagePath = value; }dZMHTML5中文学习网 - HTML5先行者学习网
  040 }dZMHTML5中文学习网 - HTML5先行者学习网
  041 ///dZMHTML5中文学习网 - HTML5先行者学习网
  042 /// 获取或设置水印在修改图片中的右边距dZMHTML5中文学习网 - HTML5先行者学习网
  043 ///dZMHTML5中文学习网 - HTML5先行者学习网
  044 public int RightSpacedZMHTML5中文学习网 - HTML5先行者学习网
  045 {dZMHTML5中文学习网 - HTML5先行者学习网
  046 get { return this.rightSpace; }dZMHTML5中文学习网 - HTML5先行者学习网
  047 set { this.rightSpace = value; }dZMHTML5中文学习网 - HTML5先行者学习网
  048 }dZMHTML5中文学习网 - HTML5先行者学习网
  049 //获取或设置水印在修改图片中距底部的高度dZMHTML5中文学习网 - HTML5先行者学习网
  050 public int BottoamSpacedZMHTML5中文学习网 - HTML5先行者学习网
  051 {dZMHTML5中文学习网 - HTML5先行者学习网
  052 get { return this.bottoamSpace; }dZMHTML5中文学习网 - HTML5先行者学习网
  053 set { this.bottoamSpace = value; }dZMHTML5中文学习网 - HTML5先行者学习网
  054 }dZMHTML5中文学习网 - HTML5先行者学习网
  055 ///dZMHTML5中文学习网 - HTML5先行者学习网
  056 /// 获取或设置要绘制水印的透明度,注意是原来图片透明度的百分比dZMHTML5中文学习网 - HTML5先行者学习网
  057 ///dZMHTML5中文学习网 - HTML5先行者学习网
  058 public int LucencyPercentdZMHTML5中文学习网 - HTML5先行者学习网
  059 {dZMHTML5中文学习网 - HTML5先行者学习网
  060 get { return this.lucencyPercent; }dZMHTML5中文学习网 - HTML5先行者学习网
  061 setdZMHTML5中文学习网 - HTML5先行者学习网
  062 {dZMHTML5中文学习网 - HTML5先行者学习网
  063 if (value >= 0 && value <= 100)dZMHTML5中文学习网 - HTML5先行者学习网
  064 this.lucencyPercent = value;dZMHTML5中文学习网 - HTML5先行者学习网
  065 }dZMHTML5中文学习网 - HTML5先行者学习网
  066 }dZMHTML5中文学习网 - HTML5先行者学习网
  067 ///dZMHTML5中文学习网 - HTML5先行者学习网
  068 /// 获取或设置要输出图像的路径dZMHTML5中文学习网 - HTML5先行者学习网
  069 ///dZMHTML5中文学习网 - HTML5先行者学习网
  070 public string OutPathdZMHTML5中文学习网 - HTML5先行者学习网
  071 {dZMHTML5中文学习网 - HTML5先行者学习网
  072 get { return this.outPath; }dZMHTML5中文学习网 - HTML5先行者学习网
  073 set { this.outPath = value; }dZMHTML5中文学习网 - HTML5先行者学习网
  074 }dZMHTML5中文学习网 - HTML5先行者学习网
  075 #endregiondZMHTML5中文学习网 - HTML5先行者学习网
  076 #region "methods"dZMHTML5中文学习网 - HTML5先行者学习网
  077 ///dZMHTML5中文学习网 - HTML5先行者学习网
  078 /// 开始绘制水印dZMHTML5中文学习网 - HTML5先行者学习网
  079 ///dZMHTML5中文学习网 - HTML5先行者学习网
  080 public void DrawImage()dZMHTML5中文学习网 - HTML5先行者学习网
  081 {dZMHTML5中文学习网 - HTML5先行者学习网
  082 Image modifyImage = null;dZMHTML5中文学习网 - HTML5先行者学习网
  083 Image drawedImage = null;dZMHTML5中文学习网 - HTML5先行者学习网
  084 Graphics g = null;dZMHTML5中文学习网 - HTML5先行者学习网
  085 trydZMHTML5中文学习网 - HTML5先行者学习网
  086 {dZMHTML5中文学习网 - HTML5先行者学习网
  087 //建立图形对象dZMHTML5中文学习网 - HTML5先行者学习网
  088 modifyImage = Image.FromFile(this.ModifyImagePath);dZMHTML5中文学习网 - HTML5先行者学习网
  089 drawedImage = Image.FromFile(this.DrawedImagePath);dZMHTML5中文学习网 - HTML5先行者学习网
  090 g = Graphics.FromImage(modifyImage);dZMHTML5中文学习网 - HTML5先行者学习网
  091 //获取要绘制图形坐标dZMHTML5中文学习网 - HTML5先行者学习网
  092 int x = modifyImage.Width - this.rightSpace;dZMHTML5中文学习网 - HTML5先行者学习网
  093 int y = modifyImage.Height - this.BottoamSpace;dZMHTML5中文学习网 - HTML5先行者学习网
  094 //设置颜色矩阵dZMHTML5中文学习网 - HTML5先行者学习网
  095 float[][] matrixItems ={dZMHTML5中文学习网 - HTML5先行者学习网
  096 new float[] {1, 0, 0, 0, 0},dZMHTML5中文学习网 - HTML5先行者学习网
  097 new float[] {0, 1, 0, 0, 0},dZMHTML5中文学习网 - HTML5先行者学习网
  098 new float[] {0, 0, 1, 0, 0},dZMHTML5中文学习网 - HTML5先行者学习网
  099 new float[] {0, 0, 0, (float)this.LucencyPercent/100f, 0},dZMHTML5中文学习网 - HTML5先行者学习网
  100 new float[] {0, 0, 0, 0, 1}};dZMHTML5中文学习网 - HTML5先行者学习网
  101 ColorMatrix colorMatrix = new ColorMatrix(matrixItems);dZMHTML5中文学习网 - HTML5先行者学习网
  102 ImageAttributes imgAttr = new ImageAttributes();dZMHTML5中文学习网 - HTML5先行者学习网
  103 imgAttr.SetColorMatrix(colorMatrix, ColorMatrixFlag.Default,  ColorAdjustType.Bitmap);dZMHTML5中文学习网 - HTML5先行者学习网
  104 //绘制阴影图像dZMHTML5中文学习网 - HTML5先行者学习网
  105 g.DrawImage(dZMHTML5中文学习网 - HTML5先行者学习网
  106 drawedImage,dZMHTML5中文学习网 - HTML5先行者学习网
  107 new Rectangle(x, y, drawedImage.Width, drawedImage.Height),dZMHTML5中文学习网 - HTML5先行者学习网
  108 0, 0, drawedImage.Width, drawedImage.Height,dZMHTML5中文学习网 - HTML5先行者学习网
  109 GraphicsUnit.Pixel, imgAttr);dZMHTML5中文学习网 - HTML5先行者学习网
  110 //保存文件dZMHTML5中文学习网 - HTML5先行者学习网
  111 string[] allowImageType = { ".jpg", ".gif", ".png", ".bmp", ".tiff",  ".wmf", ".ico" };dZMHTML5中文学习网 - HTML5先行者学习网
  112 FileInfo file = new FileInfo(this.ModifyImagePath);dZMHTML5中文学习网 - HTML5先行者学习网
  113 ImageFormat imageType = ImageFormat.Gif;dZMHTML5中文学习网 - HTML5先行者学习网
  114 switch (file.Extension.ToLower())dZMHTML5中文学习网 - HTML5先行者学习网
  115 {dZMHTML5中文学习网 - HTML5先行者学习网
  116 case ".jpg":dZMHTML5中文学习网 - HTML5先行者学习网
  117 imageType = ImageFormat.Jpeg;dZMHTML5中文学习网 - HTML5先行者学习网
  118 break;dZMHTML5中文学习网 - HTML5先行者学习网
  119 case ".gif":dZMHTML5中文学习网 - HTML5先行者学习网
  120 imageType = ImageFormat.Gif;dZMHTML5中文学习网 - HTML5先行者学习网
  121 break;dZMHTML5中文学习网 - HTML5先行者学习网
  122 case ".png":dZMHTML5中文学习网 - HTML5先行者学习网
  123 imageType = ImageFormat.Png;dZMHTML5中文学习网 - HTML5先行者学习网
  124 break;dZMHTML5中文学习网 - HTML5先行者学习网
  125 case ".bmp":dZMHTML5中文学习网 - HTML5先行者学习网
  126 imageType = ImageFormat.Bmp;dZMHTML5中文学习网 - HTML5先行者学习网
  127 break;dZMHTML5中文学习网 - HTML5先行者学习网
  128 case ".tif":dZMHTML5中文学习网 - HTML5先行者学习网
  129 imageType = ImageFormat.Tiff;dZMHTML5中文学习网 - HTML5先行者学习网
  130 break;dZMHTML5中文学习网 - HTML5先行者学习网
  131 case ".wmf":dZMHTML5中文学习网 - HTML5先行者学习网
  132 imageType = ImageFormat.Wmf;dZMHTML5中文学习网 - HTML5先行者学习网
  133 break;dZMHTML5中文学习网 - HTML5先行者学习网
  134 case ".ico":dZMHTML5中文学习网 - HTML5先行者学习网
  135 imageType = ImageFormat.Icon;dZMHTML5中文学习网 - HTML5先行者学习网
  136 break;dZMHTML5中文学习网 - HTML5先行者学习网
  137 default:dZMHTML5中文学习网 - HTML5先行者学习网
  138 break;dZMHTML5中文学习网 - HTML5先行者学习网
  139 }dZMHTML5中文学习网 - HTML5先行者学习网
  140 MemoryStream ms = new MemoryStream();dZMHTML5中文学习网 - HTML5先行者学习网
  141 modifyImage.Save(ms, imageType);dZMHTML5中文学习网 - HTML5先行者学习网
  142 byte[] imgData = ms.ToArray();dZMHTML5中文学习网 - HTML5先行者学习网
  143 modifyImage.Dispose();dZMHTML5中文学习网 - HTML5先行者学习网
  144 drawedImage.Dispose();dZMHTML5中文学习网 - HTML5先行者学习网
  145 g.Dispose();dZMHTML5中文学习网 - HTML5先行者学习网
  146 FileStream fs = null;dZMHTML5中文学习网 - HTML5先行者学习网
  147 if (this.OutPath == null || this.OutPath == "")dZMHTML5中文学习网 - HTML5先行者学习网
  148 {dZMHTML5中文学习网 - HTML5先行者学习网
  149 File.Delete(this.ModifyImagePath);dZMHTML5中文学习网 - HTML5先行者学习网
  150 fs = new FileStream(this.ModifyImagePath, FileMode.Create,  FileAccess.Write);dZMHTML5中文学习网 - HTML5先行者学习网
  151 }dZMHTML5中文学习网 - HTML5先行者学习网
  152 elsedZMHTML5中文学习网 - HTML5先行者学习网
  153 {dZMHTML5中文学习网 - HTML5先行者学习网
  154 fs = new FileStream(this.OutPath, FileMode.Create,  FileAccess.Write);dZMHTML5中文学习网 - HTML5先行者学习网
  155 }dZMHTML5中文学习网 - HTML5先行者学习网
  156 if (fs != null)dZMHTML5中文学习网 - HTML5先行者学习网
  157 {dZMHTML5中文学习网 - HTML5先行者学习网
  158 fs.Write(imgData, 0, imgData.Length);dZMHTML5中文学习网 - HTML5先行者学习网
  159 fs.Close();dZMHTML5中文学习网 - HTML5先行者学习网
  160 }dZMHTML5中文学习网 - HTML5先行者学习网
  161 }dZMHTML5中文学习网 - HTML5先行者学习网
  162 finallydZMHTML5中文学习网 - HTML5先行者学习网
  163 {dZMHTML5中文学习网 - HTML5先行者学习网
  164 trydZMHTML5中文学习网 - HTML5先行者学习网
  165 {dZMHTML5中文学习网 - HTML5先行者学习网
  166 drawedImage.Dispose();dZMHTML5中文学习网 - HTML5先行者学习网
  167 modifyImage.Dispose();dZMHTML5中文学习网 - HTML5先行者学习网
  168 g.Dispose();dZMHTML5中文学习网 - HTML5先行者学习网
  169 }dZMHTML5中文学习网 - HTML5先行者学习网
  170 catch { ;}dZMHTML5中文学习网 - HTML5先行者学习网
  171 }dZMHTML5中文学习网 - HTML5先行者学习网
  172 }dZMHTML5中文学习网 - HTML5先行者学习网
  173 #endregiondZMHTML5中文学习网 - HTML5先行者学习网
  174 }dZMHTML5中文学习网 - HTML5先行者学习网
  175}dZMHTML5中文学习网 - HTML5先行者学习网