博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
生成高质量缩略图
阅读量:5167 次
发布时间:2019-06-13

本文共 1896 字,大约阅读时间需要 6 分钟。

调用:

View Code
1 int width = 190;2 int height = 190;3 Bitmap source = new Bitmap("c:\\someimage.jpg");4 System.Drawing.Image thumb = source.GetThumbnailImage(width,height,null,IntPtr.Zero);5 thumb.Save("C:\\someimageshot.jpg");6 thumb.Dispose();

 

函数:

View Code
1 public static Bitmap CreateThumbnail(Bitmap source, int thumbWi, int thumbHi, bool maintainAspect) 2         { 3             if (source.Width < thumbWi && source.Height < thumbHi) return source; 4             System.Drawing.Bitmap ret = null; 5             try 6             { 7                 int wi, hi; 8  9                 wi = thumbWi;10                 hi = thumbHi;11 12                 if (maintainAspect)13                 {14                     if (source.Width > source.Height)15                     {16                         wi = thumbWi;17                         hi = (int)(source.Height * ((decimal)thumbWi / source.Width));18                     }19                     else20                     {21                         hi = thumbHi;22                         wi = (int)(source.Width * ((decimal)thumbHi / source.Height));23                     }24                 }25                 ret = new Bitmap(wi, hi);26                 using (Graphics g = Graphics.FromImage(ret))27                 {28                     g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;29                     g.FillRectangle(Brushes.White, 0, 0, wi, hi);30                     g.DrawImage(source, 0, 0, wi, hi);31                 }32             }33             catch34             {35                 ret = null;36             }37 38             return ret;39         }

另类用途:

比如某张云图特别大。要在首页上缩小显示。第一想法就是强制设定img的width和height。这个方法对ie8完美运行。但是ie7和6会出现图片压缩严重失真现象。这时就可以用大图转成缩略图来实现。读取大图的时候生成缩略图,并读取缩略图。下次再thumb.Save同一个缩略图文件。这样也不占用空间。

转载于:https://www.cnblogs.com/wanghafan/archive/2012/05/10/2493956.html

你可能感兴趣的文章
BeanShell简介
查看>>
python字符串操作
查看>>
不同程序语言的注释和变量要求
查看>>
语言基础(9):static, extern 和 inline
查看>>
ES5_03_Object扩展
查看>>
bzoj 2600: [Ioi2011]ricehub
查看>>
创建数据库,表
查看>>
工厂模式
查看>>
计算机网络基础知识
查看>>
C#里如何遍历枚举所有的项
查看>>
如何在键盘出现时滚动表格,以适应输入框的显示
查看>>
超级强大的鼠标手势工具
查看>>
常用Dockerfile举例
查看>>
jquery的ajax用法
查看>>
设计模式-策略模式(Strategy)
查看>>
django orm 数据查询详解
查看>>
JarvisOJ Basic 熟悉的声音
查看>>
C# list导出Excel(二)
查看>>
CAS 单点登录模块学习
查看>>
跟着辛星用PHP的反射机制来实现插件
查看>>