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;
using System.IO;
using System.Drawing.Imaging;
using System.Drawing;
public partial class Default2 : System.Web.UI.Page
{
public void ImgReduceCutOut(int int_Width, int int_Height, string input_ImgUrl, string out_ImgUrl)
{
// ===上传标准图大小===
int int_Standard_Width = 160;
int int_Standard_Height = 160;
int Reduce_Width = 0; // 缩小的宽度
int Reduce_Height = 0; // 缩小的高度
int CutOut_Width = 0; // 裁剪的宽度
int CutOut_Height = 0; // 裁剪的高度
int level = 100; //缩略图的质量 1-100的范围
// ===获得缩小,裁剪大小===
if (int_Standard_Height * int_Width / int_Standard_Width > int_Height)
{
Reduce_Width = int_Width;
Reduce_Height = int_Standard_Height * int_Width / int_Standard_Width;
CutOut_Width = int_Width;
CutOut_Height = int_Height;
}
else if (int_Standard_Height * int_Width / int_Standard_Width < int_Height)
{
Reduce_Width = int_Standard_Width * int_Height / int_Standard_Height;
Reduce_Height = int_Height;
CutOut_Width = int_Width;
CutOut_Height = int_Height;
}
else
{
Reduce_Width = int_Width;
Reduce_Height = int_Height;
CutOut_Width = int_Width;
CutOut_Height = int_Height;
}
// ===通过连接创建Image对象===
System.Drawing.Image oldimage = System.Drawing.Image.FromFile(Server.MapPath(input_ImgUrl));
//// ===缩小图片===
//System.Drawing.Image thumbnailImage = oldimage.GetThumbnailImage(Reduce_Width, Reduce_Height, new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback), IntPtr.Zero);
//Bitmap bm = new Bitmap(thumbnailImage);
Bitmap bm = new Bitmap(oldimage);
// ===处理JPG质量的函数===
ImageCodecInfo[] codecs = ImageCodecInfo.GetImageEncoders();
ImageCodecInfo ici = null;
foreach (ImageCodecInfo codec in codecs)
{
if (codec.MimeType == "image/jpeg")
ici = codec;
}
EncoderParameters ep = new EncoderParameters();
ep.Param[0] = new EncoderParameter(Encoder.Quality, (long)level);
bm.Save(Server.MapPath("2.jpg"), ici, ep);
// ===裁剪图片===
Rectangle cloneRect = new Rectangle(70, 0, CutOut_Width, CutOut_Height);
PixelFormat format = bm.PixelFormat;
Bitmap cloneBitmap = bm.Clone(cloneRect, format);
// ===保存图片===
cloneBitmap.Save(Server.MapPath(out_ImgUrl), ici, ep);
}
public bool ThumbnailCallback()
{
return false;
}
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
// ImgReduceCutOut(397, 319, "face.jpg", "2.jpg");
}
}
}
|