asp.net显示高清缩略图

简介: 如题:   添加命名空间如下: using System.Drawing; using System.Drawing.Drawing2D; using System.Drawing.Imaging; using System.

如题:

 

添加命名空间如下:

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


本文来自云栖社区合作伙伴CSDN博客,了解相关信息可以关注CSDN博客。

目录
相关文章
|
6月前
|
数据安全/隐私保护
.net给图片增加水印和生成图片缩略图
.net给图片增加水印和生成图片缩略图
65 0
|
.NET 数据库 开发框架
|
.NET 开发框架
如何实现ASP上传图片自动生成缩略图
'lj1 原图路径 'tu 图片名称 'lj2 缩 略图 存放路径 function CreatePic(lj1,tu,lj2) dim Jpeg,Path Set Jpeg = Server.
933 0
|
.NET 数据安全/隐私保护
asp.net 生成缩略图、为图片添加文字水印、图片水印等功能
最近挺嫌的荒,不知道写点什么好,就在网上找了个类似的例子,自己重新写了一遍,稍微改了一下。希望对大家有用 实现了生成缩略图、为图片添加文字水印、图片水印等功能 源代码打包下载:http://files.
1358 0
|
.NET C# 开发框架
在asp.net中显示PDF的方法:
来源:http://www.cnblogs.com/tengs2000/archive/2009/02/23/1396646.html   一、直接显示,使用的还是原页面的URL 1 Response.
1006 0