标题 | C#根据大图片生成高清缩略图 |
内容 | C#生成高清缩略图代码,一个C#函数模块,内含注释,后附函数参数,下面来看这个C#生成缩略图代码: 01public static void SetGoodImage(string fileName, string newFile, int maxHeight, int maxWidth,long qualitys) 02{ 03 if (qualitys == 0) 04 { 05 qualitys = 80; 06 } 07 using (System.Drawing.Image img = System.Drawing.Image.FromFile(fileName)) 08 { 09 System.Drawing.Imaging.ImageFormat 10 thisFormat = img.RawFormat; 11 Size newSize = NewSize(maxWidth, maxHeight, img.Width, img.Height); 12 Bitmap outBmp = new Bitmap(newSize.Width, newSize.Height); 13 Graphics g = Graphics.FromImage(outBmp); 14 // 设置画布的描绘质量 15 g.CompositingQuality = CompositingQuality.HighQuality; 16 g.SmoothingMode = SmoothingMode.HighQuality; 17 g.InterpolationMode = InterpolationMode.HighQualityBicubic; 18 g.DrawImage(img, new Rectangle(0, 0, newSize.Width, newSize.Height), 19 0, 0, img.Width, img.Height, GraphicsUnit.Pixel); 20 g.Dispose(); 21 // 以下代码为保存图片时,设置压缩质量 22 EncoderParameters encoderParams = new EncoderParameters(); 23 long[] quality = new long[1]; 24 quality[0] = qualitys; 25 EncoderParameter encoderParam = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality); 26 encoderParams.Param[0] = encoderParam; 27 //获得包含有关内置图像编码解码器的信息的ImageCodecInfo 对象. 28 ImageCodecInfo[] arrayICI = ImageCodecInfo.GetImageEncoders(); 29 ImageCodecInfo jpegICI = null; 30 for (int x = 0; 31 x < arrayICI.Length; 32 x++) 33 { 34 if (arrayICI[x].FormatDescription.Equals("JPEG")) 35 { 36 jpegICI = arrayICI[x]; 37 //设置JPEG编码 38 break; 39 } 40 } 41 if (jpegICI != null) 42 { 43 outBmp.Save(newFile, jpegICI, encoderParams); 44 } 45 else 46 { 47 outBmp.Save(newFile, thisFormat); 48 } 49 img.Dispose(); 50 outBmp.Dispose(); 51 } 52} 函数参数说明: view sourceprint?1/// 原文件 2/// 新文件 3/// 最大高度 4/// 最大宽度 5/// 质量,如果为0,则设为80 |
随便看 |
|
在线学习网考试资料包含高考、自考、专升本考试、人事考试、公务员考试、大学生村官考试、特岗教师招聘考试、事业单位招聘考试、企业人才招聘、银行招聘、教师招聘、农村信用社招聘、各类资格证书考试等各类考试资料。