C# 缩略图算法
2014-01-31 22:30
246 查看
代码写多了,有些使用过的方法和技巧会一时半会想不起来,平日记录下来,方便自己和有需要的人日后查阅。
using (var stream = new FileStream(physicalPath, FileMode.Open, FileAccess.Read)) { Bitmap target = null; int targetWidth, targetHeight; try { using (var bitmap = new Bitmap(stream)) { var size = bitmap.PhysicalDimension; if (size.Width > size.Height) { if (size.Width > _maximumWidth) { targetWidth = _maximumWidth; targetHeight = (int)size.Height * _maximumWidth / (int)size.Width; } else { targetWidth = (int)size.Width; targetHeight = (int)size.Height; } if (targetHeight >= _maximumHeight) { targetWidth = targetWidth * _maximumHeight / targetHeight; targetHeight = _maximumHeight; } } else { if (size.Height > _maximumHeight) { targetHeight = _maximumHeight; targetWidth = (int)size.Width * _maximumHeight / (int)size.Height; } else { targetHeight = (int)size.Height; targetWidth = (int)size.Width; } if (targetWidth >= _maximumWidth) { targetHeight = targetHeight * _maximumWidth / targetWidth; targetWidth = _maximumWidth; } } SizeF targetSize = SizeF.Empty; targetSize = new SizeF(targetWidth, targetHeight); target = new Bitmap(targetWidth, targetHeight); using (var graphics = Graphics.FromImage(target)) { graphics.CompositingQuality = compositingQuality; graphics.InterpolationMode = interpolationMode; graphics.CompositingMode = CompositingMode.SourceCopy; graphics.DrawImage(bitmap, 0, 0, targetSize.Width, targetSize.Height); } } context.Response.ContentType = "image/jpg"; using (MemoryStream memoryStream = new MemoryStream()) { target.Save(memoryStream, ImageFormat.Jpeg); memoryStream.WriteTo(context.Response.OutputStream); } } finally { if (target != null) { target.Dispose(); } } }
相关文章推荐
- C# 生成高质量缩略图程序―终极算法
- C#处理缩略图的算法
- C#实现遗传算法,模拟花朵的进化。
- C#常见算法面试
- C# 四舍五入算法 ,进位,舍去
- C#附加数据库算法及思路,包括附加、还原、备份、分离、压缩、创建、修改等常见操作(修正)
- ASP.NET根据URL生成网页缩略图示例程序(C#语言)
- 【转】地球坐标系 (WGS-84) 到火星坐标系 (GCJ-02) 的转换算法 C#
- HuffmanTree的浅析和在C#中的算法实现
- [转]C# 截取指定长度的中英文混合字符串的算法
- Win8 Metro(C#)数字图像处理--2.51图像统计滤波算法
- c# 添加图片水印,可以指定水印位置+生成缩略图
- c# 添加图片水印,可以指定水印位置+生成缩略图
- C# 四叉树 算法
- c# 添加图片水印,可以指定水印位置+生成缩略图
- [读书笔记] 欧几里得算法与该算法的扩充 C#
- asp.net(C#)海量数据表高效率分页算法
- 八数码问题--A算法实现---C#实现---VS2008可以执行
- C#生成缩略图控件
- C#编程之经典算法——排序(四)