先看调用的方法:
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
test_Default : System.Web.UI.Page
{
protected
void
Page_Load(
object
sender, EventArgs e)
{
generalImage();
}
private
void
generalImage()
{
string
savePath
=
@"
images/123.jpg
"
;
//
原图路径
string
smallPath
=
@"
images/small/123.jpg
"
;
//
要生成的小图
savePath
=
Server.MapPath(savePath);
//
这一步别忘了。
smallPath
=
Server.MapPath(smallPath);
//
同样这里也不要忘了。
YD.Common.ImageClass imageClass
=
new
YD.Common.ImageClass();
imageClass.ShowThumbnail(savePath, smallPath,
200
,
153
);
//
这样调用
}
}
生成小图的类:
using
System;
using
System.Data;
using
System.Configuration;
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;
using
System.Drawing;
using
System.Drawing.Imaging;
using
System.IO;
///
<summary>
///
ImageClass 的摘要说明
///
</summary>
namespace
YD.Common
{
public
class
ImageClass
{
public
bool
ThumbnailCallback()
{
return
false
;
}
public
void
ShowThumbnail(
string
oldfile,
string
newfile,
int
white,
int
height)
{
System.Drawing.Image image
=
System.Drawing.Image.FromFile(oldfile);
//
获取原图高度和宽度
int
oldh
=
image.Height;
int
oldw
=
image.Width;
int
neww, newh;
neww
=
white; newh
=
height;
//
直接设定新图的高宽,,
try
{
System.Drawing.Image.GetThumbnailImageAbort callb
=
new
System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback);
System.Drawing.Image bt
=
new
System.Drawing.Bitmap(neww, newh);
System.Drawing.Graphics gr
=
System.Drawing.Graphics.FromImage(bt);
gr.Clear(Color.White);
gr.InterpolationMode
=
System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
gr.DrawImage(image,
new
Rectangle(
0
,
0
, neww, newh),
0
,
0
, oldw, oldh, GraphicsUnit.Pixel);
switch
(oldfile.Substring(oldfile.Length
-
3
).ToUpper())
{
case
"
JPG
"
:
bt.Save(newfile, ImageFormat.Jpeg);
break
;
case
"
GIF
"
:
bt.Save(newfile, ImageFormat.Gif);
break
;
case
"
PNG
"
:
bt.Save(newfile, ImageFormat.Png);
break
;
default
:
bt.Save(newfile, ImageFormat.Jpeg);
break
;
}
gr.Dispose();
bt.Dispose();
image.Dispose();
}
catch
{ }
}
}
}