C# 对图片进行缩放.doc_第1页
C# 对图片进行缩放.doc_第2页
C# 对图片进行缩放.doc_第3页
C# 对图片进行缩放.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C# 对图片进行缩放为了提高与用户的交互力,很多网站都有图片上传之类的功能,图片过大在显示时是很占用资源的(为了布局用IMG控制成小图更亏),下面便用两个简单的方法,为大图片生成需要的小图片方法1: 使用 System.Drawing.Image / / 对图片进行处理,返回一个Image类别的对象 / / 原图片路径 / 新图片宽度 / 新图片高度 / public static Image GetNewImage(string oldImgPath, int newWidth, int newHeight) Image oldImg = Image.FromFile(oldImgPath); / 加载原图片 Image newImg = oldImg.GetThumbnailImage(newWidth, newHeight, new Image.GetThumbnailImageAbort(IsTrue), IntPtr.Zero); / 对原图片进行缩放 return newImg; private static bool IsTrue() / 在Image类别对图片进行缩放的时候,需要一个返回bool类别的委托 return true; 方法2: 使用 System.Drawing.Bitmap / / 对图片进行处理,返回一个Bitmap类别的对象 / / 原图片路径 / 新图片宽度 / 新图片高度 / public static Bitmap GetNewBitMap(string oldBmpPath, int newWidth, int newHeight) Bitmap oldBmp = new Bitmap(oldBmpPath); / 加载原图片 Bitmap bmp = new Bitmap(newWidth, newHeight); / 创建新图片 Graphics grap = Graphics.FromImage(bmp); / 绑定画板 / 原图片的开始绘制位置,及宽和高 (控制Rectangle的组成参数,便可实现对图片的剪切) Rectangle oldRect = new Rectangle(0, 0, oldBmp.Width, oldBmp.Height); / 绘制在新画板中的位置,及宽和高 (在这里是完全填充) Rectangle newRect = new Rectangle(0, 0, newWidth, newHeight); / 指定新图片的画面质量 grap.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBilinear; / 把原图片指定位置的图像绘制到新画板中 grap.DrawImage(oldBmp, newRect, oldRect, GraphicsUnit.Pixel); /* * 画图的步骤到此就已经完成了. * * 在绘制完成新图片后,还可以使用 Graphics对象的一些方法,为图片添加自定义的内容 * grap.DrawString(.);添加文字 * grap.DrawPie(.);添加扇形 * grap.DrawLine(.);添加直线 * . * */ / 添加文字 Brush bru = Brushes.Red; / 笔刷 Font font = new Font(new FontFamily(华文行楷), 30, FontStyle.Regular, GraphicsUnit.World); / 字体 PointF pf = new PointF(3, 3); / 坐标 grap.DrawString(羊, font, bru, pf); / 填充文字 return bmp; 调用方法: protected void Button1_Click(object sender, EventArgs e) Image img = UpdateImage.GetNewImage(FileUpload1.PostedFile.FileName/*图片路径*/, 200, 200); img.Save(Server.MapPath(img_XXX.jpg); Bitmap bmp = UpdateImage.GetNewBitMap(FileUpload1.PostedFile.FileName/*图片路径*/, 200, 200); bmp.Save(Server.MapPath(bm_XXX.jpg); 是做验证码吧!private void ValidateCode(string VNum) Bitmap Img = null; /定义一个Bitmap类型的变量,初值设为null Graphics g = null; /定义一个Graphics类型的变量,初值设为null MemoryStream ms = null; /定义一个MemoryStream类型的变量,初值设为null int gheight = VNum.Length * 9; /获取字符串VNum的长度,9是一个字符的宽度,是估计值 Img = new Bitmap(gheight, 18); /创建一个长为gheight,高为18 的Bitmap对象,并赋值给变量Img g = Graphics.FromImage(Img); /通过图像Img创建一个Graphics类型(画板)的对象 g.Clear(Color.WhiteSmoke); /将画板清空为Color.WhiteSmoke这个颜色 Font f = new Font(Tahoma, 9); /新创建一个字体对象 SolidBrush s = new SolidBrush(Color.Red); /新创建一个画刷对象 g.DrawString(VNum, f, s, 3, 3); /在画板上绘制字符串 ms = new MemoryStream(); /实例化内存流对象 Img.Save(ms, ImageFormat.Jpeg); /将绘制好的图像以二进制流的形式存储在内存流中 Response.ClearContent(); /先清除未输出内容 Respon

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论