C# 对图片进行缩放
来源:互联网 发布:淘宝网的评价管理在哪 编辑:程序博客网 时间:2024/04/27 16:30
为了提高与用户的交互力,很多网站都有图片上传之类的功能,
图片过大在显示时是很占用资源的(为了布局用IMG控制成小图更亏),
下面便用两个简单的方法,为大图片生成需要的小图片
方法1: 使用 System.Drawing.Image
- /// <summary>
- /// 对图片进行处理,返回一个Image类别的对象
- /// </summary>
- /// <param name="oldImgPath">原图片路径</param>
- /// <param name="newWidth">新图片宽度</param>
- /// <param name="newHeight">新图片高度</param>
- /// <returns></returns>
- 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
- /// <summary>
- /// 对图片进行处理,返回一个Bitmap类别的对象
- /// </summary>
- /// <param name="oldBmpPath">原图片路径</param>
- /// <param name="newWidth">新图片宽度</param>
- /// <param name="newHeight">新图片高度</param>
- /// <returns></returns>
- 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"));
- }
- C# 对图片进行缩放
- C#对图片进行缩放变换
- android对图片进行缩放
- php对上传图片进行缩放处理
- Android(OPhone)对图片进行缩放
- IOS 对UIImage图片进行缩放
- iOS 利用UIScrollView 对图片进行缩放
- java对图片进行缩放并保存
- markdown对图片进行居中、缩放
- RecycleView使用glide显示图片,对图片进行缩放
- 对图片进行等比例缩放,并水平垂直居中
- Node.js 对图片进行裁切、缩放
- php和js对数据库图片进行等比缩放
- Android自由地对图片进行缩放和移动
- 采用第三方插件对图片进行缩放处理
- android使用inSampleSize、inScaled、inDensity、inTargetDensity对图片进行缩放
- android使用inSampleSize、inScaled、inDensity、inTargetDensity对图片进行缩放
- Android对图片进行平移,缩放,旋转操作
- java字符串替换字符串实例
- 什么是Kernel、Shell、Bash 很幽默的解释
- asp.net 开发常见问题及解决方法(一)
- 北大2394题
- 目前觉得比较牛的事情
- C# 对图片进行缩放
- 奥斯卡提名和获奖电影名单
- 谋划(12)
- 北大2895题
- Linux系统信息查看命令大全
- 菜鸟自学Linux之---硬盘安装篇
- woauolt.exe,System.exe,Update.dll,MPKrnl.dll,360mon.dll,upnpsrv.dll等1
- Apache Rewrite解决问号匹配的写法
- 菜鸟自学Linux之---必学的60个命令