您的位置:首页 > 编程语言

缩略图代码(按百分比和按大小两种方式)

2008-07-03 11:21 106 查看
using System;

using System.IO;

using System.Drawing;

using System.Drawing.Imaging;public class ImageThumbnail

{

public Image ResourceImage;

private int ImageWidth;

private int ImageHeight;

public string ErrorMessage;

public ImageThumbnail(string ImageFileName)

{

ResourceImage = Image.FromFile(ImageFileName);

ErrorMessage = "";

}

public bool ThumbnailCallback()

{

return false;

}

// 方法1,按大小

public bool ReducedImage(int Width, int Height, string targetFilePath)

{

try

{

Image ReducedImage;

Image.GetThumbnailImageAbort callb = new Image.GetThumbnailImageAbort(ThumbnailCallback);

ReducedImage = ResourceImage.GetThumbnailImage(Width, Height, callb, IntPtr.Zero);

ReducedImage.Save(@targetFilePath, ImageFormat.Jpeg);

ReducedImage.Dispose();

return true;

}

catch (Exception e)

{

ErrorMessage = e.Message;

return false;

}

}

// 方法2,按百分比 缩小60% Percent为0.6 targetFilePath为目标路径

public bool ReducedImage(double Percent, string targetFilePath)

{

try

{

Image ReducedImage;

Image.GetThumbnailImageAbort callb = new Image.GetThumbnailImageAbort(ThumbnailCallback);

ImageWidth = Convert.ToInt32(ResourceImage.Width * Percent);

ImageHeight = (ResourceImage.Height)*ImageWidth/ ResourceImage.Width;//等比例缩放

ReducedImage = ResourceImage.GetThumbnailImage(ImageWidth, ImageHeight, callb, IntPtr.Zero);

ReducedImage.Save(@targetFilePath, ImageFormat.Jpeg);

ReducedImage.Dispose();

return true;

}

catch (Exception e)

{

ErrorMessage = e.Message;

return false;

}

}

}

后台代码:

using System;

using System.Data;

using System.Configuration;

using System.Collections;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

public partial class _Default : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

}

protected void bt_upload_Click(object sender, EventArgs e)

{

try

{

if (FileUpload1.PostedFile.FileName == "")

{

this.lb_info.Text = "请选择文件!";

}

else

{

string filepath = FileUpload1.PostedFile.FileName;

string filename = filepath.Substring(filepath.LastIndexOf("\\") + 1);

string serverpath1 = Server.MapPath("images/") + filename;

string serverpath2 = Server.MapPath("images/") + System.DateTime.Now.ToString("yyy-MM-dd-hh-mm-ss") + Session.SessionID + filename;

FileUpload1.PostedFile.SaveAs(serverpath1);

ImageThumbnail img = new ImageThumbnail(filepath);

img.ReducedImage(0.4, serverpath2);//0.4表示缩小40%

this.lb_info.Text = "上传成功!";

}

}

catch (Exception error)

{

this.lb_info.Text = "上传发生错误!原因:" + error.ToString();

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: