ASP.NET 生成缩略图片类分享
/// <summary>
/// 生成图片缩略图 指定文件路径生成
/// </summary>
public static void SaveImage(String fullName, string fileName, int w, int h)
{
FileStream fs = new FileStream(fullName, FileMode.Open);
System.Drawing.Image image = System.Drawing.Image.FromStream(fs, true);
fs.Close();
SaveImage(image, fileName, w, h);
} /// <summary>
/// 生成图片缩略图 指定文件流生成
/// </summary>
public static void SaveImage(Stream fs, string fileName, int w, int h)
{
Image image = System.Drawing.Image.FromStream(fs, true);
SaveImage(image, fileName, w, h);
} /// <summary>
/// 生成图片缩略图
/// </summary>
public static void SaveImage(System.Drawing.Image image, string fileName, int w, int h, int high = 90)
{
if (w == 0 && h == 0)
{
w = image.Width;
h = image.Height;
}
else if (w > 0 && h > 0)
{
if (image.Width > image.Height)
{
if (image.Width > w)
{
h = (int)(image.Height * ((decimal)w / image.Width));
}
else
{
h = image.Height;
w = image.Width;
}
}
else
{
if (image.Height > h)
{
w = (int)(image.Width * ((decimal)h / image.Height));
}
else
{
h = image.Height;
w = image.Width;
}
}
}
else if (w > 0)
{
if (image.Width > w)
{
h = (int)(image.Height * ((decimal)w / image.Width));
}
else
{
h = image.Height;
w = image.Width;
}
}
else if (h > 0)
{
if (image.Height > h)
{
w = (int)(image.Width * ((decimal)h / image.Height));
}
else
{
h = image.Height;
w = image.Width;
}
} Bitmap ret = new Bitmap(w, h); using (Graphics g = Graphics.FromImage(ret))
{
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
g.FillRectangle(Brushes.White, 0, 0, w, h);
g.DrawImage(image, 0, 0, w, h);
EncoderParameters parms = new EncoderParameters();
long[] quality = new long[1];
quality[0] = high;
EncoderParameter parm = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality);
parms.Param[0] = parm;
ImageCodecInfo[] arr = ImageCodecInfo.GetImageEncoders();
ImageCodecInfo ar = null;
for (int x = 0; x < arr.Length; x++)
{
if (arr[x].FormatDescription.Equals("JPEG"))
{
ar = arr[x];
break;
}
} ret.Save(fileName, ar, parms);
ret.Dispose();
image.Dispose();
}
}
ASP.NET 生成缩略图片类分享的更多相关文章
- asp.net生成缩略图
/// <summary> /// 生成缩略图 /// </summary> /// <param name="orginalImagePat"> ...
- ASP.NET生成缩略图的代码
01. // <summary> 02. /// 生成缩略图 03. /// </summary> 04. /// &l ...
- asp.net生成缩略图、文字图片水印
/// <summary> /// 会产生graphics异常的PixelFormat /// </summary> private static PixelFormat[] ...
- [GDI+] 生成缩略图的类文件SmallImage (转载)
直接看代码吧,大家可以直接复制使用 /// <summary> /// 类说明:SmallImage类, /// 编码日期:2012-08-20 /// 编 码 人: 苏飞 /// 联系方 ...
- 【PHP缩略图类】手机照片不能生成缩略图问题以及解决方式
[本文原创,谢绝转载] 一.出现的问题 这几天做了手机上传照片并裁出缩略图的接口的測试,发现无论怎么.生成的缩略图都是一片漆黑.:-( 然后就把这个缩略图类单拿出来进行測试,发现仅仅要是手机拍出来的照 ...
- asp.net中生成缩略图并添加版权实例代码
这篇文章介绍了asp.net中生成缩略图并添加版权实例代码,有需要的朋友可以参考一下 复制代码代码如下: //定义image类的对象 Drawing.Image image,newimage; //图 ...
- ASP组件AspJpeg(加水印)生成缩略图等使用方法
ASP组件AspJpeg(加水印)生成缩略图等使用方法 作者: 字体:[增加 减小] 类型:转载 时间:2012-12-17我要评论 ASPJPEG是一款功能相当强大的图象处理组件,用它可以轻松地做出 ...
- php 图片操作类,支持生成缩略图,添加水印,上传缩略图
<?php class Image { //类开始 public $originimage = ""; //源图片文件地址 public $image ...
- PHP生成缩略图的一个方法类(转)
//使用如下类就可以生成图片缩略图 class resizeimage { //图片类型 var $type; //实际宽度 var $width; //实际高度 var $height; //改变后 ...
随机推荐
- 总结开发中使用到的npm 库
1.Swiper https://github.com/nolimits4web/Swiper 移动端slides插件 2.fetch https://github.com/whatwg/fetch ...
- Spring JDBC Framework详解——批量JDBC操作、ORM映射
转自:https://blog.csdn.net/yuyulover/article/details/5826948 一.spring JDBC 概述 Spring 提供了一个强有力的模板类JdbcT ...
- 安装wget
今天给服务器安装新LNMP环境时,wget 时提示 -bash:wget command not found,很明显没有安装wget软件包.一般linux最小化安装时,wget不会默认被安装. 可以通 ...
- MySQL GTID (一)
MySQL GTID 系列之一 一.GTID相关概念 GTID:全局事务标识符,MySQL5.6版本开始在主从复制中推出的重量级特性. 每提交一个事务,当前执行线程都会拿到一个给定复制环境中唯一的GT ...
- window.location 属性
属性 含义 值 protocol: 协议 "http:" hostname: 服务器的名字 "b.a.com" port: 端口 "88" ...
- css常用属性总结:颜色和单位
在css代码编写中,估计颜色和单位是必不可少的,然而在css中关于颜色和单位值的写法有很多种写法,所以有必要把它弄清楚. 颜色 当初我在初学前端的时候,就会冒出一个疑问“我该如何设置网页颜色?”,一般 ...
- Varint 数值压缩
[Varint 数值压缩] Varint 是一种紧凑的表示数字的方法.它用一个或多个字节来表示一个数字,值越小的数字使用越少的字节数.这能减少用来表示数字的字节数.比如对于 int32 类型的数字,一 ...
- mybatis调用自定义函数
<select id="getFunction" parameterType="int" resultType="string"> ...
- 文字如何实现完美UI?文本排版设计告诉你
一部手机,电量充足,网络通畅,就足以让我们打发一天的时光,尽情沉浸在手机时代的缤纷世界里.这个信息资源无穷尽的手机网络世界,是设计师和开发者们在不停的探索中一路一步精心打造.如何进一步美化这个世界,优 ...
- Python中numpy.apply_along_axis()函数的用法
numpy.apply_along_axis(func, axis, arr, *args, **kwargs): 必选参数:func,axis,arr.其中func是我们自定义的一个函数,函数fun ...