asp.net显示高清缩略图

如题:

 

添加命名空间如下:

using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
using System.IO;

-----------------------------------------------------------------------------------------------

 

显示原图:

[c-sharp] view plain copy

  1. //显示原图  
  2.     protected void btnImage_Click(object sender, EventArgs e)  
  3.     {  
  4.         string filePath = Server.MapPath("~/Up/美女.jpg");  
  5.         //方式一:  
  6.         //Response.ContentType = "image/jpeg";  
  7.         //Response.WriteFile(filePath);  
  8.   
  9.         //方式二:  
  10.         FileStream imageStr = new FileStream(filePath, FileMode.Open);  
  11.         byte[] imageData=new byte[imageStr.Length];  
  12.         imageStr.Read(imageData,0,(int)imageStr.Length);  
  13.         Response.OutputStream.Write(imageData, 0, (int)imageStr.Length);  
  14.           
  15.     }  

 

想要改变的尺寸:

[c-sharp] view plain copy

  1. private static Size NewSize(int maxWidth, int maxHeight, int Width, int Height)  
  2.     {  
  3.         double w = 0.0;  
  4.         double h = 0.0;  
  5.         double sw = Convert.ToDouble(Width);  
  6.         double sh = Convert.ToDouble(Height);  
  7.         double mw = Convert.ToDouble(maxWidth);  
  8.         double mh = Convert.ToDouble(maxHeight);  
  9.   
  10.         if (sw < mw && sh < mh)//如果maxWidth和maxHeight大于源图像,则缩略图的长和高不变  
  11.         {  
  12.             w = sw;  
  13.             h = sh;  
  14.         }  
  15.         else if ((sw / sh) > (mw / mh))  
  16.         {  
  17.             w = maxWidth;  
  18.             h = (w * sh) / sw;  
  19.         }  
  20.         else  
  21.         {  
  22.             h = maxHeight;  
  23.             w = (h * sw) / sh;  
  24.         }  
  25.         return new Size(Convert.ToInt32(w), Convert.ToInt32(h));  
  26.     }  

 

转化成缩略图:

 

[c-sharp] view plain copy

  1. //转化成缩略图  
  2.     public void SendSmallImage(string filename, string newfile, int maxHeight, int maxWidth)  
  3.     {  
  4.         System.Drawing.Image img = System.Drawing.Image.FromFile(filename);//源图像的信息  
  5.         System.Drawing.Imaging.ImageFormat thisformat = img.RawFormat; //源图像的格式  
  6.   
  7.         Size newSize = NewSize(maxWidth, maxHeight, img.Width, img.Height); //返回调整后的图像Width与Height  
  8.         Bitmap outBmp = new Bitmap(newSize.Width, newSize.Height);  
  9.         Graphics g = Graphics.FromImage(outBmp);  
  10.         //设置画布的描绘质量(高)  
  11.         g.CompositingQuality = CompositingQuality.HighQuality;  
  12.         g.SmoothingMode = SmoothingMode.HighQuality;  
  13.         g.InterpolationMode = InterpolationMode.HighQualityBicubic;  
  14.         g.DrawImage(img, new Rectangle(0, 0, newSize.Width, newSize.Height), 0, 0, img.Width, img.Height, GraphicsUnit.Pixel);  
  15.         g.Dispose();  
  16.         //以下代码为保存图片时,设置压缩质量  
  17.         EncoderParameters encoderParams = new EncoderParameters();  
  18.         long[] quality = new long[1];  
  19.         quality[0] = 100;  
  20.         EncoderParameter encoderParam = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality);  
  21.         encoderParams.Param[0] = encoderParam;  
  22.         //获取包含有关内置图像编码解码器的信息的ImageCodecInfo对象。  
  23.         ImageCodecInfo[] arrayICI = ImageCodecInfo.GetImageEncoders();  
  24.         ImageCodecInfo jpegICI = null;  
  25.         for (int x = 0; x < arrayICI.Length; x++)  
  26.         {  
  27.             if (arrayICI[x].FormatDescription.Equals("JPEG"))  
  28.             {  
  29.                 jpegICI = arrayICI[x];//设置jpeg编码  
  30.                 break;  
  31.             }  
  32.         }  
  33.         if (jpegICI != null)  
  34.         {  
  35.             outBmp.Save(newfile , jpegICI, encoderParams);  
  36.         }  
  37.         else  
  38.         {  
  39.             outBmp.Save(newfile, thisformat);  
  40.         }  
  41.         img.Dispose();  
  42.         outBmp.Dispose();  
  43.     }  

 

页面上是一个FileUpload控件,先上传原图,在显示在页面上,添加一个Image控件,宽,高设为:100×100,用以对比缩略图。

将原图输出缩略为100×100;

原文发布时间为:2009-10-27

本文作者:vinoYang

时间: 2024-10-07 02:06:16

asp.net显示高清缩略图的相关文章

SharePoint 2013同步Exchange显示高清用户照片

在"SharePoint 2013技巧分享系列 - Active Directory同步显示用户照片"文中介绍了如何同步Active Directory显示用户照片,但是同步完成后,用户照片尺寸和清晰度都不是非常理想.本文将介绍如何同步Exchange Server显示高清用户照片. 原理 与SharePoint Server 2010相似, 在SharePoint Server 2013中存在一个用户照片的目录.当SharePoint启用Exchange照片同步时, SharePoi

C#根据大图片生成高清缩略图

  C#生成高清缩略图代码,一个C#函数模块,内含注释,后附函数参数,下面来看这个C#生成缩略图代码: 01public static void SetGoodImage(string fileName, string newFile, int maxHeight, int maxWidth,long qualitys) 02{ 03 if (qualitys == 0) 04 { 05 qualitys = 80; 06 } 07 using (System.Drawing.Image img

php生成高清缩略图实例详解_php技巧

本文实例讲述了php生成高清缩略图的方法.分享给大家供大家参考,具体如下: 在使用php的函数生成缩略图的使用,缩略图很多情况下都会失真,这个时候需要有一些对应的解决方法. 1.用imagecreatetruecolor和imageCopyreSampled函数分别取代imagecreate和imagecopyresized 2.给imagejpeg的第三个参数带上100(例:imagejpeg($ni,$toFile,100)) 下面是具体的函数 function CreateSmallIma

ASP.NET生成高质量缩略图通用函数(c#代码)

asp.net|函数|缩略图 在网站开发时,生成缩略图是一个非常常见和实用的功能.以前在asp里只能借助com组件实现,现在在.net里可以利用框架的强大的类库轻松实现.下面帖出完整的代码(带详细注释),参考了网上的一些文章及.net sdk相关内容.QQROOM网络家园的图片上传用到了所有的4种生成方式.         /// <summary>        /// 生成缩略图        /// </summary>        /// <param name=&

asp.net生成高质量缩略图通用函数(c#代码),支持多种生成方式

asp.net|函数|缩略图 在网站开发时,生成缩略图是一个非常常见和实用的功能.以前在asp里只能借助com组件实现,现在在.net里可以利用框架的强大的类库轻松实现.下面帖出完整的代码(带详细注释),参考了网上的一些文章及.net sdk相关内容.QQROOM网络家园的图片上传用到了所有的4种生成方式.         /**//// <summary>        /// 生成缩略图        /// </summary>        /// <param na

ASP.NET生成高质量缩略图通用函数

在网站开发时,生成缩略图是一个非常常见和实用的功能.以前在asp里只能借助com组件实现,现在在.net里可以利用框架的强大的类库轻松实现.下面帖出完整的代码(带详细注释),参考了网上的一些文章及.net sdk相关内容.QQROOM网络家园的图片上传用到了所有的4种生成方式. /// <summary> /// 生成缩略图 /// </summary> /// <param name="originalImagePath">源图路径(物理路径)&l

ASP.NET 生成高质量缩略图代码

asp.net|缩略图  private static Size NewSize(int maxWidth, int maxHeight, int width, int height)  {   double w = 0.0;   double h = 0.0;   double sw = Convert.ToDouble(width);   double sh = Convert.ToDouble(height);   double mw = Convert.ToDouble(maxWidth

php创建高清缩略图详细使用方法

1.用imagecreatetruecolor和imagecopyresampled函数分别取代imagecreate和imagecopyresized 2.给imagejpeg的第三个参数带上100(例:imagejpeg($ni,$tofile,100)) imagecreatetruecolor -- 新建一个真彩色图像 说明 resource imagecreatetruecolor ( int x_size, int y_size ) imagecreatetruecolor() 返回

php gd库函数生成高清缩略图程序

gd库是php教程中一个处理图像的专用库,他可以方便快捷的处理大多数据处理,它提供了大量的图片处理函数,下面我们就利用gd库的函数来生成缩略图. 测试代码   <?php include('resizeimage.php'); if(!empty($_post)){ echo($filename.".jpg?cache=".rand(0,999999)); } ?> <form name="test" action="?submit=tr