版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电机学课件-清华大学
- 2024年全新装修设计合作协议2篇
- 广西大学附属中学消防讲座课件张琳敏课件
- 房屋担保租赁合同(2篇)
- 2024年互联网租赁平台自行车退租退款及押金返还协议3篇
- 2025年贵州货运从业资格考试模拟考试题库及答案解析
- 2025年福州货运从业资格试题答案解析
- 2025年武汉货运从业资格证考试模拟考试题及答案
- 2025年克拉玛依b2考货运资格证要多久
- 2025年塔城货运资格证培训考试题
- Linux配置与管理智慧树知到期末考试答案2024年
- 防失智老人走失试理论试题及答案
- 肾活检术后护理查房
- 血糖监测技术新进展培训课件
- 《卫生检疫》期末复习选择题及答案
- 你那年那兔那些事儿
- 生活区公共服务设施布局规划优化
- DB21-T 2780.1-2017辽东落叶松二元立木材积表 第1 部分 日本落叶松
- 地源热泵施工流程课件
- 智能物料搬运机器人设计方案
- 土石方工程投标书技术标
评论
0/150
提交评论