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

图片等比例缩放 C#

2013-10-29 09:15 253 查看

图片等比例缩放 C#

这是类代码:

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 void DisImage()

{

ResourceImage.Dispose();

}

public bool ThumbnailCallback()

{

return false;

}

// 方法1,按大小

/// <summary>

/// 按大小缩放图片

/// </summary>

/// <param name="Width">缩放到的宽</param>

/// <param name="Height">缩放到的高</param>

/// <param name="targetFilePath">图片的名字</param>

/// <returns>bool</returns>

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为目标路径

/// <summary>

/// 按百分比缩放

/// </summary>

/// <param name="Percent">小数:0.4表示百分之40</param>

/// <param name="targetFilePath">图片的名称</param>

/// <returns>bool</returns>

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;

}

}

}

这是后台代码:

protected void btnUpload_Click(object sender, EventArgs e)

{

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

{

Response.Write("请选择文件!");

}

else

{

string filepath = FileUpload1.PostedFile.FileName;

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

filename=filepath.Substring(filename.LastIndexOf(".")+0);

filename = DateTime.Now.ToString("yyyyMMddHHmmssffff") + filename;

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

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

FileUpload1.PostedFile.SaveAs(serverpath1);

ImageThumbnail img = new ImageThumbnail(serverpath1);

img.ReducedImage(100,70, serverpath2);//80,50 表示图片的宽高

Response.Write("上传成功!");

}

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