Reset Image Size 2
你会留意到Insus.NET在前一次的写了Reset Image Size的功能http://www.cnblogs.com/insus/articles/1909037.html,这个功能是在图片显示时去做图片缩略,有网友向Insus.NET提及,这样做有点不好,就是每run一次,系统就要缩略生成一次,这样会有损性能,希望能改善一下。为了改善性能,哪只有在图片上传时或在图片管理时,实现一个功能保存一份缩略图在目录中。
下面是代码(部分),请参考:
![](/assets/blank.gif)
![](/assets/blank.gif)
//获取原图片的的宽度与高度
int originalWidth = imgOriginal.Width;
int originalHeight = imgOriginal.Height;
//定义缩略图片宽度和高度
int thumbnailWidth, thumbnailHeight;
//如果原图片的宽度与高度都小于缩略图片尺寸
if (originalWidth < thumbnailSize && originalHeight < thumbnailSize)
{
thumbnailWidth = originalWidth; //宽度等于原宽度
thumbnailHeight = originalHeight;//高度等于原高度
}
//如果原图片宽度大于原图片的高度
else if (originalWidth > originalHeight)
{
thumbnailWidth = thumbnailSize; //宽度等于缩略图片尺寸
thumbnailHeight = originalHeight * thumbnailSize / originalWidth; //高度做相应比例缩小
}
//如果原图片高度大于原图片的宽度
else
{
thumbnailWidth = originalWidth * thumbnailSize / originalHeight; //宽度做相应比例缩小
thumbnailHeight = thumbnailSize; //高度等于缩略图片尺寸
}
System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(thumbnailWidth, thumbnailHeight);
System.Drawing.Graphics graphics = System.Drawing.Graphics.FromImage(bitmap);
//设置缩略图片质量
graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
graphics.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
graphics.DrawImage(imgOriginal, 0, 0, thumbnailWidth, thumbnailHeight);
// 保存缩略图片
bitmap.Save(imageSavePath);
Reset Image Size 2相关推荐
- wm命令(wm size)修改屏幕尺寸
wm size可以查看当前屏幕分辨率,也可以设置屏幕分辨率(当然也就一般调试问题wm size). eg: wm size 720x1280 这里要注意了乘号不是*,是x字母 一.Wm源码 我们先来看 ...
- arkit与现实世界距离比_如何使用ARKit和Pusher构建实时增强现实测量应用程序
arkit与现实世界距离比 by Esteban Herrera 由Esteban Herrera 如何使用ARKit和Pusher构建实时增强现实测量应用程序 (How to Build a Rea ...
- 【CSON原创】 图片滑动展开效果发布
功能说明: 鼠标移动到不同图片上,该图片滑动展开,其它图片折叠. 支持IE 6 7 8 firefox chrome 效果预览: 实现原理: 当鼠标移动到某张图片,该图片以及该图片前的图片以相同速 ...
- adb命令实现一些有趣的功能
下载ADB工具集,手机连接电脑后,用Windows自带命令行进入ADB工具,输入以下命令即可免root实现神奇功能 1.电量显示: adb shell content insert --uri con ...
- C++ Bitsets
Bitsets Constructors Operators any count flip none reset set size test to_string to_ulong Constructo ...
- 16个超实用的jQuery技巧攻略
本文我们将为jQuery用户分享8个超实用的技巧攻略.jQuery是JavaScript最好的库之一,主要用于制作动画.事件处理,支持Ajax及HTML 脚本客户端.此外,jQuery还拥有各种插件, ...
- Python常用的模块的使用技巧
Python常用模块的使用技巧 目录 Python常用模块的使用技巧 1.Python配置说明 (1)Python注释说明 (2)函数说明 (3)ipynb文件转.py文件 (4)Python计算运行 ...
- win8学习--------File
//创建文件 using namespace Windows::Storage; MainPage^ rootPage;rootPage = MainPage::Current; create_tas ...
- SPH(光滑粒子流体动力学)流体模拟实现六:Position Based Fluid(PBF)
SPH(光滑粒子流体动力学)流体模拟实现六:Position Based Fluid(PBF) PBF方法和前篇提到的PCISPH方法类似,都属于迭代矫正法.PCISPH是通过迭代预测压力,通过压力变 ...
- SPH(光滑粒子流体动力学)流体模拟实现二:SPH算法(4)-算法实现2
流体模拟(二) SPH算法实现2: 在前面一节我们完成了粒子缓存类,网格类和邻接表类.我们现在可以正式的整合在我们的流体系统类中了. 流体系统类 class FluidSystem{public:Fl ...
最新文章
- LoadRunner中log的使用总结
- php变量定义的位置,php变量一般放在哪个位置
- JAVA escape/unescape
- Flutter编译时生成代码之 code_builder
- Google Dremel数据模型详解(下)
- Windows Hello 可绕过漏洞进行身份认证
- oracle经典博客,Oracle启动步骤【经典博客】
- Yacc 与 Lex 快速入门
- linux下缓存命中测试,linux为什么报表缓存缓存未命中?_linux_开发99编程知识库...
- 用cmd运行java可以javac不行(win10)
- 自动化集成:Pipeline整合Docker+K8S
- 三和韓長庚 著 易學原理總論 對讀 021_040
- 一个完整的c语言的单链表代码,单链表完整C语言纯代码.docx
- 微软WIN10应用商店无法下载应用
- 深入理解PSNR(峰值信噪比)(附matlab代码)
- Java之T分布计算数据的双侧置信区间
- css中pt单位,pt是什么单位
- 河套学院2018级计算机一级考试,河套学院2018-2019学年本科生就业率
- 42招健脑秘笈——必看
- STM32F103系列之移植uCOS-II