您的位置:首页 > 其它

更改图片大小,显示固定尺寸

2007-07-09 08:40 447 查看
1 web.config:
<appSettings>
<add key="DatabaseConnectString" value="data source=192.168.0.2;initial catalog=MapServer;user id=sa;password=;packet size=4096;persist security info=False"/>
<add key="ThumbNailWidth" value="110"/>
<add key="ThumbNailHeight" value="83"/>
</appSettings>
2.程序内容;
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Drawing.Imaging;
using System.Data.SqlClient;

namespace Map
{
/// <summary>
/// GetThumbnail 的摘要说明。
/// </summary>
public class GetThumbnail : System.Web.UI.Page
{
private void Page_Load(object sender, System.EventArgs e)
{
string connString = System.Configuration.ConfigurationSettings.AppSettings["DatabaseConnectString"];
int picId,width,height;

try
{
width = int.Parse(this.Request["Width"]);
height = int.Parse(this.Request["Height"]);
}
catch
{
width = int.Parse(System.Configuration.ConfigurationSettings.AppSettings["ThumbNailWidth"]);
height = int.Parse(System.Configuration.ConfigurationSettings.AppSettings["ThumbNailHeight"]);
}

try
{
picId = int.Parse(this.Request["PicId"]);
}
catch
{
return;
}

using(SqlConnection conn = new SqlConnection(connString))
{
SqlCommand cmd = new SqlCommand("SELECT PicId, ServerFile, MimeType FROM 图片_图片信息 where PicId=@PicId", conn);
cmd.Parameters.Add("@PicId", picId);
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
sda.Fill(dt);
if(dt.Rows.Count != 0)
{
this.GetThumbNail(dt.Rows[0]["ServerFile"].ToString(),
width, height, dt.Rows[0]["MimeType"].ToString());
}
}
}

#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion

private void GetThumbNail(string fileName, int width, int height, string contentType)
{
System.Drawing.Image img = System.Drawing.Image.FromFile(fileName);
int newWidth = width;
int newHeight = height;
newHeight = (img.Height * newWidth) / (img.Width);
img = img.GetThumbnailImage(newWidth, newHeight, null, IntPtr.Zero);
Response.ContentType = contentType;
MemoryStream MemStream = new MemoryStream();
img.Save(MemStream, GetImageType(contentType));
MemStream.WriteTo(Response.OutputStream);
img.Dispose();
}

private ImageFormat GetImageType(string contentType)
{
switch(contentType)
{
case "image/jpeg":
return ImageFormat.Jpeg;
case "image/bmp":
return ImageFormat.Bmp;
case "image/gif":
return ImageFormat.Gif;
}
return null;
}
}
}
3 数据库设置
picid picname filename serverfile mimetype
1 样板房照片 165251.jpg d:/projects/map/map/pictures/165251.jpg image/jpeg
4 使用:
GetThumbnail.aspx?picid=1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: