C#图片压缩、生成缩略图、添加水印模块__第1页
C#图片压缩、生成缩略图、添加水印模块__第2页
C#图片压缩、生成缩略图、添加水印模块__第3页
C#图片压缩、生成缩略图、添加水印模块__第4页
C#图片压缩、生成缩略图、添加水印模块__第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C#图片压缩、生成缩略图、添加水印模块_ C#图片处理工具类,可以压缩JPG图像,图片自动生成缩略图,为图片添加水印效果等,返回高清缩略图,得到最佳的图片比例缩放尺寸,并猎取图片类型等,类代码如下: view sourceprint?001using System; 002using System.Collections.Generic; 003using System.Linq; 004using System.Text; 005using System.IO; 006using System.Drawing; 007using System.Drawing.Drawing2D; 008us

2、ing System.Drawing.Imaging; 009namespace CLB.Utility.Tools 010 011 / 012 / 图片工具类 013 / 014 public static class ImageHelper 015 016 / 017 / 压缩JPG图片 018 / 019 / 压缩后图片存放的地址 020 / 需要压缩的图片地址 021 / 压缩质量:假如为0则默认调整为80 022 public static void SetCompressImage(string NewfileName, string OldfileName, long quali

3、ty) 023 024 if (quality = 0) 025 026 quality = 80; 027 028 using (Bitmap bitmp = new Bitmap(OldfileName) 029 030 EncoderParameters ep = new EncoderParameters(1); 031 ep.Param0 = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality); 032 ImageCodecInfo myImageCodecInfo = GetEncoderInf

4、o(image/jpeg); 033 bitmp.Save(NewfileName, myImageCodecInfo, ep); 034 bitmp.Dispose(); 035 036 037 / 038 / 返回高清缩略图 039 / 040 / 原文件 041 / 新文件 042 / 最大高度 043 / 最大宽度 044 / 质量,假如为0,则设为80 045 public static void SetGoodImage(string fileName, string newFile, int maxHeight, int maxWidth,longqualitys) 046 04

5、7 if (qualitys = 0) 048 049 qualitys = 80; 050 051 using (System.Drawing.Image img = System.Drawing.Image.FromFile(fileName) 052 053 System.Drawing.Imaging.ImageFormat 054 thisFormat = img.RawFormat; 055 Size newSize = NewSize(maxWidth, maxHeight, img.Width, img.Height); 056 Bitmap outBmp = new Bitm

6、ap(newSize.Width, newSize.Height); 057 Graphics g = Graphics.FromImage(outBmp); 058 / 设置画布的描绘质量 059 g.CompositingQuality = CompositingQuality.HighQuality; 060 g.SmoothingMode = SmoothingMode.HighQuality; 061 g.InterpolationMode = InterpolationMode.HighQualityBicubic; 062 g.DrawImage(img, new Rectang

7、le(0, 0, newSize.Width, newSize.Height), 063 0, 0, img.Width, img.Height, GraphicsUnit.Pixel); 064 g.Dispose(); 065 / 以下代码为保存图片时,设置压缩质量 066 EncoderParameters encoderParams = new EncoderParameters(); 067 long quality = new long1; 068 quality0 = qualitys; 069 EncoderParameter encoderParam = new Encode

8、rParameter(System.Drawing.Imaging.Encoder.Quality, quality); 070 encoderParams.Param0 = encoderParam; 071 /获得包含有关内置图像编码解码器的信息的ImageCodecInfo 对象. 072 ImageCodecInfo arrayICI = ImageCodecInfo.GetImageEncoders(); 073 ImageCodecInfo jpegICI = null; 074 for (int x = 0; 075 x arrayICI.Length; 076 x+) 077

9、078 if (arrayICIx.FormatDescription.Equals(JPEG) 079 080 jpegICI = arrayICIx; 081 /设置JPEG编码 082 break; 083 084 085 if (jpegICI != null) 086 087 outBmp.Save(newFile, jpegICI, encoderParams); 088 089 else 090 091 outBmp.Save(newFile, thisFormat); 092 093 img.Dispose(); 094 outBmp.Dispose(); 095 096 09

10、7 / 得到到按比例最佳尺寸 098 private static Size NewSize(int maxWidth, int maxHeight, int width, int height) 099 100 double w = 0.0; 101 double h = 0.0; 102 double sw = Convert.ToDouble(width); 103 double sh = Convert.ToDouble(height); 104 double mw = Convert.ToDouble(maxWidth); 105 double mh = Convert.ToDoub

11、le(maxHeight); 106 if (sw mw sh mh) 107 108 w = sw; 109 h = sh; 110 111 else if (sw / sh) (mw / mh) 112 113 w = maxWidth; 114 h = (w * sh) / sw; 115 116 else 117 118 h = maxHeight; 119 w = (h * sw) / sh; 120 121 return new Size(Convert.ToInt32(w), Convert.ToInt32(h); 122 123 / 124 / 得到图片类型 125 / 126

12、 / 127 / 128 private static ImageCodecInfo GetEncoderInfo(String mimeType) 129 130 int j; 131 ImageCodecInfo encoders; 132 encoders = ImageCodecInfo.GetImageEncoders(); 133 for (j = 0; j encoders.Length; +j) 134 135 if (encodersj.MimeType = mimeType) 136 return encodersj; 137 138 return null; 139 14

13、0 / 141 / 添加水印效果 142 / 143 / 输入路径 144 / 输出路径 145 / 水印文件路径 146 / 水印靠近图片右边的像素 147 / 水印靠近底边的像素 148 / 透亮度 149 public static void SetWaterMark( string fileName, string newfileName,string WaterImg,int RightSpace,intBottomSpace,int LucencyPercent) 150 151 using (System.Drawing.Image image = System.Drawing.Image.FromFile(fileName) 152 153 ImageModification wm = new ImageModification(); 154 wm.DrawedImagePath = WaterImg; /水印图片 155 wm.ModifyImagePath = fileName; /图片的路径 156 wm.RightSpace = RightSpace; /水

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论