html5中文学习网

您的位置: 首页 > 网站及特效实例 > jquery特效 » 正文

C#图片压缩、生成缩略图、添加水印模块_编程语言综合

[ ] 已经帮助:人解决问题

   C#图片处理工具类,可以压缩JPG图像,图片自动生成缩略图,为图片添加水印效果等,返回高清缩略图,得到最佳的图片比例缩放尺寸,并获取图片类型等,类代码如下:jLXHTML5中文学习网 - HTML5先行者学习网

  view sourceprint?001using System;jLXHTML5中文学习网 - HTML5先行者学习网

  002using System.Collections.Generic;jLXHTML5中文学习网 - HTML5先行者学习网

  003using System.Linq;jLXHTML5中文学习网 - HTML5先行者学习网

  004using System.Text;jLXHTML5中文学习网 - HTML5先行者学习网

  005using System.IO;jLXHTML5中文学习网 - HTML5先行者学习网

  006using System.Drawing;jLXHTML5中文学习网 - HTML5先行者学习网

  007using System.Drawing.Drawing2D;jLXHTML5中文学习网 - HTML5先行者学习网

  008using System.Drawing.Imaging;jLXHTML5中文学习网 - HTML5先行者学习网

  009namespace CLB.Utility.ToolsjLXHTML5中文学习网 - HTML5先行者学习网

  010{jLXHTML5中文学习网 - HTML5先行者学习网

  011 ///jLXHTML5中文学习网 - HTML5先行者学习网

  012 /// 图片工具类jLXHTML5中文学习网 - HTML5先行者学习网

  013 ///jLXHTML5中文学习网 - HTML5先行者学习网

  014 public static class ImageHelperjLXHTML5中文学习网 - HTML5先行者学习网

  015 {jLXHTML5中文学习网 - HTML5先行者学习网

  016 ///jLXHTML5中文学习网 - HTML5先行者学习网

  017 /// 压缩JPG图片jLXHTML5中文学习网 - HTML5先行者学习网

  018 ///jLXHTML5中文学习网 - HTML5先行者学习网

  019 /// 压缩后图片存放的地址jLXHTML5中文学习网 - HTML5先行者学习网

  020 /// 需要压缩的图片地址jLXHTML5中文学习网 - HTML5先行者学习网

  021 /// 压缩质量:如果为0则默认调整为80jLXHTML5中文学习网 - HTML5先行者学习网

  022 public static void SetCompressImage(string NewfileName, string OldfileName, long quality)jLXHTML5中文学习网 - HTML5先行者学习网

  023 {jLXHTML5中文学习网 - HTML5先行者学习网

  024 if (quality == 0)jLXHTML5中文学习网 - HTML5先行者学习网

  025 {jLXHTML5中文学习网 - HTML5先行者学习网

  026 quality = 80;jLXHTML5中文学习网 - HTML5先行者学习网

  027 }jLXHTML5中文学习网 - HTML5先行者学习网

  028 using (Bitmap bitmp = new Bitmap(OldfileName))jLXHTML5中文学习网 - HTML5先行者学习网

  029 {jLXHTML5中文学习网 - HTML5先行者学习网

  030 EncoderParameters ep = new EncoderParameters(1);jLXHTML5中文学习网 - HTML5先行者学习网

  031 ep.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality);jLXHTML5中文学习网 - HTML5先行者学习网

  032 ImageCodecInfo myImageCodecInfo = GetEncoderInfo("image/jpeg");jLXHTML5中文学习网 - HTML5先行者学习网

  033 bitmp.Save(NewfileName, myImageCodecInfo, ep);jLXHTML5中文学习网 - HTML5先行者学习网

  034 bitmp.Dispose();jLXHTML5中文学习网 - HTML5先行者学习网

  035 }jLXHTML5中文学习网 - HTML5先行者学习网

  036 }jLXHTML5中文学习网 - HTML5先行者学习网

  037 ///jLXHTML5中文学习网 - HTML5先行者学习网

  038 /// 返回高清缩略图jLXHTML5中文学习网 - HTML5先行者学习网

  039 ///jLXHTML5中文学习网 - HTML5先行者学习网

  040 /// 原文件jLXHTML5中文学习网 - HTML5先行者学习网

  041 /// 新文件jLXHTML5中文学习网 - HTML5先行者学习网

  042 /// 最大高度jLXHTML5中文学习网 - HTML5先行者学习网

  043 /// 最大宽度jLXHTML5中文学习网 - HTML5先行者学习网

  044 /// 质量,如果为0,则设为80jLXHTML5中文学习网 - HTML5先行者学习网

  045 public static void SetGoodImage(string fileName, string newFile, int maxHeight, int maxWidth,longqualitys)jLXHTML5中文学习网 - HTML5先行者学习网

  046 {jLXHTML5中文学习网 - HTML5先行者学习网

  047 if (qualitys == 0)jLXHTML5中文学习网 - HTML5先行者学习网

  048 {jLXHTML5中文学习网 - HTML5先行者学习网

  049 qualitys = 80;jLXHTML5中文学习网 - HTML5先行者学习网

  050 }jLXHTML5中文学习网 - HTML5先行者学习网

  051 using (System.Drawing.Image img = System.Drawing.Image.FromFile(fileName))jLXHTML5中文学习网 - HTML5先行者学习网

  052 {jLXHTML5中文学习网 - HTML5先行者学习网

  053 System.Drawing.Imaging.ImageFormatjLXHTML5中文学习网 - HTML5先行者学习网

  054 thisFormat = img.RawFormat;jLXHTML5中文学习网 - HTML5先行者学习网

  055 Size newSize = NewSize(maxWidth, maxHeight, img.Width, img.Height);jLXHTML5中文学习网 - HTML5先行者学习网

  056 Bitmap outBmp = new Bitmap(newSize.Width, newSize.Height);jLXHTML5中文学习网 - HTML5先行者学习网

  057 Graphics g = Graphics.FromImage(outBmp);jLXHTML5中文学习网 - HTML5先行者学习网

  058 // 设置画布的描绘质量jLXHTML5中文学习网 - HTML5先行者学习网

  059 g.CompositingQuality = CompositingQuality.HighQuality;jLXHTML5中文学习网 - HTML5先行者学习网

  060 g.SmoothingMode = SmoothingMode.HighQuality;jLXHTML5中文学习网 - HTML5先行者学习网

  061 g.InterpolationMode = InterpolationMode.HighQualityBicubic;jLXHTML5中文学习网 - HTML5先行者学习网

  062 g.DrawImage(img, new Rectangle(0, 0, newSize.Width, newSize.Height),jLXHTML5中文学习网 - HTML5先行者学习网

  063 0, 0, img.Width, img.Height, GraphicsUnit.Pixel);jLXHTML5中文学习网 - HTML5先行者学习网

  064 g.Dispose();jLXHTML5中文学习网 - HTML5先行者学习网

  065 // 以下代码为保存图片时,设置压缩质量jLXHTML5中文学习网 - HTML5先行者学习网

  066 EncoderParameters encoderParams = new EncoderParameters();jLXHTML5中文学习网 - HTML5先行者学习网

  067 long[] quality = new long[1];jLXHTML5中文学习网 - HTML5先行者学习网

  068 quality[0] = qualitys;jLXHTML5中文学习网 - HTML5先行者学习网

  069 EncoderParameter encoderParam = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality);jLXHTML5中文学习网 - HTML5先行者学习网

  070 encoderParams.Param[0] = encoderParam;jLXHTML5中文学习网 - HTML5先行者学习网

  071 //获得包含有关内置图像编码解码器的信息的ImageCodecInfo 对象.jLXHTML5中文学习网 - HTML5先行者学习网

  072 ImageCodecInfo[] arrayICI = ImageCodecInfo.GetImageEncoders();jLXHTML5中文学习网 - HTML5先行者学习网

  073 ImageCodecInfo jpegICI = null;jLXHTML5中文学习网 - HTML5先行者学习网

  074 for (int x = 0;jLXHTML5中文学习网 - HTML5先行者学习网

  075 x < arrayICI.Length;jLXHTML5中文学习网 - HTML5先行者学习网

  076 x++)jLXHTML5中文学习网 - HTML5先行者学习网

  077 {jLXHTML5中文学习网 - HTML5先行者学习网

  078 if (arrayICI[x].FormatDescription.Equals("JPEG"))jLXHTML5中文学习网 - HTML5先行者学习网

  079 {jLXHTML5中文学习网 - HTML5先行者学习网

  080 jpegICI = arrayICI[x];jLXHTML5中文学习网 - HTML5先行者学习网

  081 //设置JPEG编码jLXHTML5中文学习网 - HTML5先行者学习网

  082 break;jLXHTML5中文学习网 - HTML5先行者学习网

  083 }jLXHTML5中文学习网 - HTML5先行者学习网

  084 }jLXHTML5中文学习网 - HTML5先行者学习网

  085 if (jpegICI != null)jLXHTML5中文学习网 - HTML5先行者学习网

  086 {jLXHTML5中文学习网 - HTML5先行者学习网

  087 outBmp.Save(newFile, jpegICI, encoderParams);jLXHTML5中文学习网 - HTML5先行者学习网

  088 }jLXHTML5中文学习网 - HTML5先行者学习网

  089 elsejLXHTML5中文学习网 - HTML5先行者学习网

  090 {jLXHTML5中文学习网 - HTML5先行者学习网

  091 outBmp.Save(newFile, thisFormat);jLXHTML5中文学习网 - HTML5先行者学习网

  092 }jLXHTML5中文学习网 - HTML5先行者学习网

  093 img.Dispose();jLXHTML5中文学习网 - HTML5先行者学习网

  094 outBmp.Dispose();jLXHTML5中文学习网 - HTML5先行者学习网

  095 }jLXHTML5中文学习网 - HTML5先行者学习网

  096 }jLXHTML5中文学习网 - HTML5先行者学习网

  097 // 得到到按比例最佳尺寸jLXHTML5中文学习网 - HTML5先行者学习网

  098 private static Size NewSize(int maxWidth, int maxHeight, int width, int height)jLXHTML5中文学习网 - HTML5先行者学习网

  099 {jLXHTML5中文学习网 - HTML5先行者学习网

  100 double w = 0.0;jLXHTML5中文学习网 - HTML5先行者学习网

  101 double h = 0.0;jLXHTML5中文学习网 - HTML5先行者学习网

  102 double sw = Convert.ToDouble(width);jLXHTML5中文学习网 - HTML5先行者学习网

  103 double sh = Convert.ToDouble(height);jLXHTML5中文学习网 - HTML5先行者学习网

  104 double mw = Convert.ToDouble(maxWidth);jLXHTML5中文学习网 - HTML5先行者学习网

  105 double mh = Convert.ToDouble(maxHeight);jLXHTML5中文学习网 - HTML5先行者学习网

  106 if (sw < mw && sh < mh)jLXHTML5中文学习网 - HTML5先行者学习网

  107 {jLXHTML5中文学习网 - HTML5先行者学习网

  108 w = sw;jLXHTML5中文学习网 - HTML5先行者学习网

  109 h = sh;jLXHTML5中文学习网 - HTML5先行者学习网

  110 }jLXHTML5中文学习网 - HTML5先行者学习网

  111 else if ((sw / sh) > (mw / mh))jLXHTML5中文学习网 - HTML5先行者学习网

  112 {jLXHTML5中文学习网 - HTML5先行者学习网

  113 w = maxWidth;jLXHTML5中文学习网 - HTML5先行者学习网

  114 h = (w * sh) / sw;jLXHTML5中文学习网 - HTML5先行者学习网

  115 }jLXHTML5中文学习网 - HTML5先行者学习网

  116 elsejLXHTML5中文学习网 - HTML5先行者学习网

  117 {jLXHTML5中文学习网 - HTML5先行者学习网

  118 h = maxHeight;jLXHTML5中文学习网 - HTML5先行者学习网

  119 w = (h * sw) / sh;jLXHTML5中文学习网 - HTML5先行者学习网

  120 }jLXHTML5中文学习网 - HTML5先行者学习网

  121 return new Size(Convert.ToInt32(w), Convert.ToInt32(h));jLXHTML5中文学习网 - HTML5先行者学习网

  122 }jLXHTML5中文学习网 - HTML5先行者学习网

  123 ///jLXHTML5中文学习网 - HTML5先行者学习网

  124 /// 得到图片类型jLXHTML5中文学习网 - HTML5先行者学习网

  125 ///jLXHTML5中文学习网 - HTML5先行者学习网

  126 ///jLXHTML5中文学习网 - HTML5先行者学习网

  127 ///jLXHTML5中文学习网 - HTML5先行者学习网

  128 private static ImageCodecInfo GetEncoderInfo(String mimeType)jLXHTML5中文学习网 - HTML5先行者学习网

  129 {jLXHTML5中文学习网 - HTML5先行者学习网

  130 int j;jLXHTML5中文学习网 - HTML5先行者学习网

  131 ImageCodecInfo[] encoders;jLXHTML5中文学习网 - HTML5先行者学习网

  132 encoders = ImageCodecInfo.GetImageEncoders();jLXHTML5中文学习网 - HTML5先行者学习网

  133 for (j = 0; j < encoders.Length; ++j)jLXHTML5中文学习网 - HTML5先行者学习网

  134 {jLXHTML5中文学习网 - HTML5先行者学习网

  135 if (encoders[j].MimeType == mimeType)jLXHTML5中文学习网 - HTML5先行者学习网

  136 return encoders[j];jLXHTML5中文学习网 - HTML5先行者学习网

  137 }jLXHTML5中文学习网 - HTML5先行者学习网

  138 return null;jLXHTML5中文学习网 - HTML5先行者学习网

  139 }jLXHTML5中文学习网 - HTML5先行者学习网

  140 ///jLXHTML5中文学习网 - HTML5先行者学习网

  141 /// 添加水印效果jLXHTML5中文学习网 - HTML5先行者学习网

  142 ///jLXHTML5中文学习网 - HTML5先行者学习网

  143 /// 输入路径jLXHTML5中文学习网 - HTML5先行者学习网

  144 /// 输出路径jLXHTML5中文学习网 - HTML5先行者学习网

  145 /// 水印文件路径jLXHTML5中文学习网 - HTML5先行者学习网

  146 /// 水印靠近图片右边的像素jLXHTML5中文学习网 - HTML5先行者学习网

  147 /// 水印靠近底边的像素jLXHTML5中文学习网 - HTML5先行者学习网

  148 /// 透明度jLXHTML5中文学习网 - HTML5先行者学习网

  149 public static void SetWaterMark( string fileName, string newfileName,string WaterImg,int RightSpace,intBottomSpace,int LucencyPercent)jLXHTML5中文学习网 - HTML5先行者学习网

  150 {jLXHTML5中文学习网 - HTML5先行者学习网

  151 using (System.Drawing.Image image = System.Drawing.Image.FromFile(fileName))jLXHTML5中文学习网 - HTML5先行者学习网

  152 {jLXHTML5中文学习网 - HTML5先行者学习网

  153 ImageModification wm = new ImageModification();jLXHTML5中文学习网 - HTML5先行者学习网

  154 wm.DrawedImagePath = WaterImg; //水印图片jLXHTML5中文学习网 - HTML5先行者学习网

  155 wm.ModifyImagePath = fileName; //图片的路径jLXHTML5中文学习网 - HTML5先行者学习网

  156 wm.RightSpace = RightSpace; //水印位置jLXHTML5中文学习网 - HTML5先行者学习网

  157 wm.BottoamSpace = image.Height - BottomSpace; //水银位置jLXHTML5中文学习网 - HTML5先行者学习网

  158 wm.LucencyPercent = LucencyPercent; //透明度jLXHTML5中文学习网 - HTML5先行者学习网

  159 wm.OutPath = newfileName; //生成的文件名jLXHTML5中文学习网 - HTML5先行者学习网

  160 wm.DrawImage();jLXHTML5中文学习网 - HTML5先行者学习网

  161 image.Dispose();jLXHTML5中文学习网 - HTML5先行者学习网

  162 }jLXHTML5中文学习网 - HTML5先行者学习网

  163 }jLXHTML5中文学习网 - HTML5先行者学习网

  164 }jLXHTML5中文学习网 - HTML5先行者学习网

  165}jLXHTML5中文学习网 - HTML5先行者学习网

        :更多精彩文章请关注三联编程教程栏目。

(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助