更改图片大小,显示固定尺寸
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
<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
相关文章推荐
- css设置多个img为固定高度显示,不受图片实际尺寸影响而改变大小
- 获取不固定大小的网络图片,然后在UITableviewCell中显示
- 控制gridControl中cardview中图片的固定大小显示
- 尺寸不固定的图片在div中垂直居中并完全显示
- Android图片的固定大小显示
- 根据屏幕的尺寸决定图片的显示大小
- 批量更改图片尺寸大小的photoshop脚本
- html5根据图片固定大小,使大小不等的图片居中显示 用于列表中显示的图片的统一处理
- .net控制图片的显示尺寸/C#控制图片的显示尺寸/.net取得图片尺寸/.net更改图片尺寸/Unit转换
- 固定控件大小时,为了图片显示不变形,使用Glide显示图片中间部分
- 如何修改Magento前台显示的产品图片的尺寸大小
- 如何修改magento前台显示的产品图片的大小尺寸
- Python实现更改图片尺寸大小的方法(基于Pillow包)
- PlusSlider 2个焦点图,一个可以固定图片宽和高一个显示实际大小
- 图片固定大小显示问题
- 实现圆形头像(并且不管图大小都显示成固定尺寸)-和上一篇有点不同。
- Python实现更改图片尺寸大小的方法(基于Pillow包)
- 图片在固定大小容器中等比居中显示
- CSS之固定大小的div中自动显示图片的中间部分
- Android图片的固定大小显示