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

c#生成图片缩略图或按比例压缩图片

2014-03-05 14:30 369 查看
有4个重载方法,有直接返回Image对象的,有生成缩略图,并且保存到指定目录的!

using System.IO;

using System.Drawing;

using System.Drawing.Imaging;

///

/// 图片处理类

/// 1、生成缩略图片或按照比例改变图片的大小和画质

/// 2、将生成的缩略图放到指定的目录下

///

public class ImageClass

{

public Image
ResourceImage;

private int
ImageWidth;

private int
ImageHeight;

public string
ErrMessage;

///

/// 类的构造函数

///

///
图片文件的全路径名称

public
ImageClass(string ImageFileName)

{

ResourceImage=Image.FromFile(ImageFileName);

ErrMessage="";

}

public bool
ThumbnailCallback()

{

return
false;

}

///

///
生成缩略图重载方法1,返回缩略图的Image对象

///

/// 缩略图的宽度

/// 缩略图的高度

///
缩略图的Image对象

public Image
GetReducedImage(int Width,int Height)

{

try

{

Image
ReducedImage;

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



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



return
ReducedImage;

}

catch(Exception
e)

{

ErrMessage=e.Message;

return
null;

}

}

///

///
生成缩略图重载方法2,将缩略图文件保存到指定的路径

///

/// 缩略图的宽度

/// 缩略图的高度

///
缩略图保存的全文件名,(带路径),参数格式:D:\Images\filename.jpg

///
成功返回true,否则返回false

public bool
GetReducedImage(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)

{

ErrMessage=e.Message;

return
false;

}

}

///

///
生成缩略图重载方法3,返回缩略图的Image对象

///

/// 缩略图的宽度百分比
如:需要百分之80,就填0.8

///
缩略图的Image对象

public Image
GetReducedImage(double Percent)

{

try

{

Image
ReducedImage;

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

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

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



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



return
ReducedImage;

}

catch(Exception
e)

{

ErrMessage=e.Message;

return
null;

}

}

///

///
生成缩略图重载方法4,返回缩略图的Image对象

///

/// 缩略图的宽度百分比
如:需要百分之80,就填0.8

///
缩略图保存的全文件名,(带路径),参数格式:D:\Images\filename.jpg

///
成功返回true,否则返回false

public bool
GetReducedImage(double Percent,string targetFilePath)

{

try

{

Image
ReducedImage;

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

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

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



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

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



ReducedImage.Dispose();



return
true;

}

catch(Exception
e)

{

ErrMessage=e.Message;

return
false;

}

}

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