代码段1 ========================= System.Drawing.Image image = System.Drawing.Image.FromFile(originalFilename); System.Drawing.Size size = GetImageSize(image.Width, image.Height, information.MaximumDimension); System.Drawing.Image bitmap = new System.Drawing.Bitmap(size.Width, size.Height); System.Drawing.Graphics graphics = System.Drawing.Graphics.FromImage(bitmap); graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High; graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; graphics.Clear(information.BackgroundColor); graphics.DrawImage(image, new System.Drawing.Rectangle(0, 0, bitmap.Width, bitmap.Height), new System.Drawing.Rectangle(0, 0, image.Width, image.Height), System.Drawing.GraphicsUnit.Pixel); graphics.Dispose();
代码段2 ============================ //原始图片名称 string originalFilename = "c:\\222.jpg"; //生成的高质量图片名称 string strGoodFile = "c:\\222-small-good.jpg"; //生成的低质量图片名称 string strBadFile = "c:\\222-small-bad.jpg"; //缩小的倍数 int iScale = 3;
//从文件取得图片对象 System.Drawing.Image image = System.Drawing.Image.FromFile(originalFilename); //取得图片大小 System.Drawing.Size size = new Size(image.Width / iScale , image.Height / iScale); //新建一个bmp图片 System.Drawing.Image bitmap = new System.Drawing.Bitmap(size.Width,size.Height); //新建一个画板 System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap); //设置高质量插值法 g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High; //设置高质量,低速度呈现平滑程度 g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; //清空一下画布 g.Clear(Color.Blue); //在指定位置画图 g.DrawImage(image, new System.Drawing.Rectangle(0, 0, bitmap.Width, bitmap.Height), new System.Drawing.Rectangle(0, 0, image.Width,image.Height), System.Drawing.GraphicsUnit.Pixel); //保存高清晰度的缩略图 bitmap.Save(strGoodFile, System.Drawing.Imaging.ImageFormat.Jpeg); //取得原图像的普通缩略图 System.Drawing.Image img = image.GetThumbnailImage(image.Width / iScale, image.Height / iScale, null, IntPtr.Zero); //保存普通缩略图 img.Save(strBadFile, System.Drawing.Imaging.ImageFormat.Jpeg);
g.Dispose(); MessageBox.Show("生成完毕");
俺自己写的一段原图+缩略图代码 =============================== using System; using System.Collections; using System.ComponentModel; using System.Configuration; using System.Data; using System.Drawing; using System.Drawing.Imaging; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls;
namespace BSCRM.Shangpin { /// <summary> /// Shangpin_IMG 的摘要说明。 /// </summary> public class Shangpin_IMG : System.Web.UI.Page { string ImagePath = ConfigurationSettings.AppSettings["ImagePath"]+"\\"; bool error; string src; int height,width; private void Page_Load(object sender, System.EventArgs e) { // 在此处放置用户代码以初始化页面 height=width=0;
if(Request["h"]!=null&&Request["h"].ToString().Trim()!="") { height=int.Parse(Request["h"].ToString().Trim()); } if(Request["w"]!=null&&Request["h"].ToString().Trim()!="") { width=int.Parse(Request["w"].ToString().Trim()); }
if(Request["src"]!=null) { src = ImagePath+Request["src"].ToString(); try { System.Drawing.Image img = System.Drawing.Image.FromFile(src);
if(height>0||width>0) { if(height==0) height=img.Height; if(width==0) width=img.Width; System.Drawing.Image img2 = img.GetThumbnailImage(width,height,null,IntPtr.Zero); img2.Save(Response.OutputStream,img.RawFormat); img2.Dispose(); } else { img.Save(Response.OutputStream,img.RawFormat); }
img.Dispose(); } catch { error = true; } } else { error = true; }
if(error) { Response.StatusCode = 404; Response.Write("<html><head><title>Object Not Found</title></head><body><h1>HTTP/1.1 404 Object Not Found</h1></body></html>"); } }
#region Web 窗体设计器生成的代码 override protected void OnInit(EventArgs e) { // // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。 // InitializeComponent(); base.OnInit(e); } /// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// </summary> private void InitializeComponent() { this.Load += new System.EventHandler(this.Page_Load); } #endregion } }

|