/// <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 生成缩略图片类分享的更多相关文章

  1. asp.net生成缩略图

    /// <summary> /// 生成缩略图 /// </summary> /// <param name="orginalImagePat"> ...

  2. ASP.NET生成缩略图的代码

    01.        // <summary> 02.        /// 生成缩略图 03.        /// </summary> 04.        /// &l ...

  3. asp.net生成缩略图、文字图片水印

    /// <summary> /// 会产生graphics异常的PixelFormat /// </summary> private static PixelFormat[] ...

  4. [GDI+] 生成缩略图的类文件SmallImage (转载)

    直接看代码吧,大家可以直接复制使用 /// <summary> /// 类说明:SmallImage类, /// 编码日期:2012-08-20 /// 编 码 人: 苏飞 /// 联系方 ...

  5. 【PHP缩略图类】手机照片不能生成缩略图问题以及解决方式

    [本文原创,谢绝转载] 一.出现的问题 这几天做了手机上传照片并裁出缩略图的接口的測试,发现无论怎么.生成的缩略图都是一片漆黑.:-( 然后就把这个缩略图类单拿出来进行測试,发现仅仅要是手机拍出来的照 ...

  6. asp.net中生成缩略图并添加版权实例代码

    这篇文章介绍了asp.net中生成缩略图并添加版权实例代码,有需要的朋友可以参考一下 复制代码代码如下: //定义image类的对象 Drawing.Image image,newimage; //图 ...

  7. ASP组件AspJpeg(加水印)生成缩略图等使用方法

    ASP组件AspJpeg(加水印)生成缩略图等使用方法 作者: 字体:[增加 减小] 类型:转载 时间:2012-12-17我要评论 ASPJPEG是一款功能相当强大的图象处理组件,用它可以轻松地做出 ...

  8. php 图片操作类,支持生成缩略图,添加水印,上传缩略图

    <?php class Image {     //类开始     public $originimage = ""; //源图片文件地址     public $image ...

  9. PHP生成缩略图的一个方法类(转)

    //使用如下类就可以生成图片缩略图 class resizeimage { //图片类型 var $type; //实际宽度 var $width; //实际高度 var $height; //改变后 ...

随机推荐

  1. 第1课 GUI程序原理分析

    1. 命令行应用程序 (1)命令行应用程序的特点 ①是一种基于顺序执行结构的可执行程序 ②程序执行过程中不需要与用户产生交互 ③程序执行后给出最终的运行结果 (2)命令行应用程序的运行模式——程序运行 ...

  2. PHP数组键值使用单引号和双引号和无符号的区别

    PHP数组键值使用单引号和双引号和无符号的区别 方法/步骤 1 第一种:$array['key']此单引号键值模式可以直接被解析为一个数组即$array 第二种:$array["key&qu ...

  3. dd命令的conv=fsync,oflag=sync/dsync

    conv的参数有 1.sync Pad every input block to size of 'ibs' with trailing zero bytes. When used with 'blo ...

  4. VCF文件导入导出

    参考资料 通讯录导入导出vcf格式文件方法可参考: https://qiaodahai.com/android-iphone-mobile-phones-contacts-import-and-exp ...

  5. 测试工具-PICT-微软基于数据项多个取值的正交法用例生成工具

    下载 http://download.microsoft.com/download/f/5/5/f55484df-8494-48fa-8dbd-8c6f76cc014b/pict33.msi 这里使用 ...

  6. MATLAB 条形图或饼状图 图案填充

    function [im_hatch,colorlist] = applyhatch_pluscolor(h,patterns,CvBW,Hinvert,colorlist, ... dpi,hatc ...

  7. Vim插件之ale,LeaderF,completor.vim(win10)配置

    内容包含 vim-plug,异步插件管理,总之就是下起来快. ale,异步语法检查 LeaderF,快速查找文件 completor.vim vim8的快速补全 markdown预览 common s ...

  8. Yii 引入js css jquery 执行操作

    在布局中引用通用到js,或者css: <?php Yii::app()->clientScript->registerCoreScript('jquery');?>  //注意 ...

  9. Symfony 建立一个Bundle

    如果说,这个时候你萌生了一个去看一看Symfony源码的想法,个人建议还是算了,看了之后,你就会感到非常迷茫.因为他实在是大于绝大部分你使用过的框架,并且有多达近二十个的插件,使用了一些非常精巧的设计 ...

  10. layer插件open方法回掉值问题

    最近做项目需用到一个弹出层加载iframe页面的东西,首先想到layer插件,此插件用到过多次,兼容性很好,功能也强大,废话不多说上代码. 其实功能很简单,就是在目标页面选择一个值,回掉回来,说明一下 ...