全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

C#实现缩放和剪裁图片的方法示例

本文实例讲述了C#实现缩放和剪裁图片的方法。分享给大家供大家参考,具体如下:

using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
namespace Project
{
  class ImageOperation
  {
    /// <summary>
    /// Resize图片
    /// </summary>
    /// <param name="bmp">原始Bitmap </param>
    /// <param name="newW">新的宽度</param>
    /// <param name="newH">新的高度</param>
    /// <param name="Mode">保留着,暂时未用</param>
    /// <returns>处理以后的图片</returns>
    public static Bitmap ResizeImage(Bitmap bmp, int newW, int newH, int Mode)
    {
      try
      {
        Bitmap b = new Bitmap(newW, newH);
        Graphics g = Graphics.FromImage(b);
        // 插值算法的质量
        g.InterpolationMode = InterpolationMode.HighQualityBicubic;
        g.DrawImage(bmp, new Rectangle(0, 0, newW, newH), new Rectangle(0, 0, bmp.Width, bmp.Height), GraphicsUnit.Pixel);
        g.Dispose();
        return b;
      }
      catch
      {
        return null;
      }
    }
    /// <summary>
    /// 剪裁 -- 用GDI+
    /// </summary>
    /// <param name="b">原始Bitmap</param>
    /// <param name="StartX">开始坐标X</param>
    /// <param name="StartY">开始坐标Y</param>
    /// <param name="iWidth">宽度</param>
    /// <param name="iHeight">高度</param>
    /// <returns>剪裁后的Bitmap</returns>
    public static Bitmap Cut(Bitmap b, int StartX, int StartY, int iWidth, int iHeight)
    {
      if (b == null)
      {
        return null;
      }
      int w = b.Width;
      int h = b.Height;
      if (StartX >= w || StartY >= h)
      {
        return null;
      }
      if (StartX + iWidth > w)
      {
        iWidth = w - StartX;
      }
      if (StartY + iHeight > h)
      {
        iHeight = h - StartY;
      }
      try
      {
        Bitmap bmpOut = new Bitmap(iWidth, iHeight, PixelFormat.Format24bppRgb);
        Graphics g = Graphics.FromImage(bmpOut);
        g.DrawImage(b, new Rectangle(0, 0, iWidth, iHeight), new Rectangle(StartX, StartY, iWidth, iHeight), GraphicsUnit.Pixel);
        g.Dispose();
        return bmpOut;
      }
      catch
      {
        return null;
      }
    }
  }
}

目标其实都是new Rectangle(0, 0, iWidth, iHeight),缩放算法把整个原始图都往目标区域里塞new Rectangle(0, 0, bmp.Width, bmp.Height),而剪裁只是把原始区域上等宽等高的那个区域new Rectangle(StartX, StartY, iWidth, iHeight)1:1的塞到目标区域里。

更多关于C#相关内容感兴趣的读者可查看本站专题:《C#图片操作技巧汇总》、《C#常见控件用法教程》、《WinForm控件用法总结》、《C#数据结构与算法教程》、《C#面向对象程序设计入门教程》及《C#程序设计之线程使用技巧总结》

希望本文所述对大家C#程序设计有所帮助。


# C#  # 缩放  # 剪裁  # 图片  # C#图片按比例缩放实例  # JS实现按比例缩放图片的方法(附C#版代码)  # C#图片按比例缩放的实现代码  # c#图片缩放图片剪切功能实现(等比缩放)  # C#如何实现图片的剪裁并保存  # c# Base64编码和图片的互相转换代码  # C#保存图片到数据库并读取显示图片的方法  # C#图片压缩的实现方法  # C#实现图片分割方法与代码  # C#(.net)水印图片的生成完整实例  # 程序设计  # 都是  # 相关内容  # 感兴趣  # 数据结构  # 给大家  # 更多关于  # 所述  # 使用技巧  # 面向对象  # 等高  # 操作技巧  # 插值  # 讲述了  # summary  # gt  # Resize  # Project  # ImageOperation  # lt 


相关文章: C++ static_cast和dynamic_cast区别_C++静态转换与动态类型安全转换  香港服务器建站指南:外贸独立站搭建与跨境电商配置流程  建站之星会员如何解锁更多建站功能?  外汇网站制作流程,如何在工商银行网站上做外汇买卖?  如何在阿里云域名上完成建站全流程?  道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?  如何在阿里云完成域名注册与建站?  西安专业网站制作公司有哪些,陕西省建行官方网站?  XML的“混合内容”是什么 怎么用DTD或XSD定义  全景视频制作网站有哪些,全景图怎么做成网页?  如何选择高性价比服务器搭建个人网站?  建站主机选虚拟主机还是云服务器更好?  如何选择域名并搭建高效网站?  创业网站制作流程,创业网站可靠吗?  建站之星如何快速更换网站模板?  Android滚轮选择时间控件使用详解  SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?  建站之星后台密码遗忘如何找回?  Swift中switch语句区间和元组模式匹配  如何有效防御Web建站篡改攻击?  建站之星安装失败:服务器环境不兼容?  网站制作软件免费下载安装,有哪些免费下载的软件网站?  最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?  公司网站制作价格怎么算,公司办个官网需要多少钱?  如何撰写建站申请书?关键要点有哪些?  已有域名和空间如何快速搭建网站?  Bpmn 2.0的XML文件怎么画流程图  平台云上自助建站如何快速打造专业网站?  建站之星后台密码遗忘或太弱?如何重置与强化?  外贸公司网站制作,外贸网站建设一般有哪些步骤?  建站之星伪静态规则如何正确配置?  免费公司网站制作软件,如何申请免费主页空间做自己的网站?  香港服务器网站卡顿?如何解决网络延迟与负载问题?  网站制作公司排行榜,四大门户网站排名?  宝塔建站后网页无法访问如何解决?  建站之星安装后如何配置SEO及设计样式?  mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?  深圳网站制作平台,深圳市做网站好的公司有哪些?  微信小程序制作网站有哪些,微信小程序需要做网站吗?  c++ stringstream用法详解_c++字符串与数字转换利器  如何选择香港主机高效搭建外贸独立站?  如何在沈阳梯子盘古建站优化SEO排名与功能模块?  如何在香港服务器上快速搭建免备案网站?  如何通过虚拟主机空间快速建站?  北京的网站制作公司有哪些,哪个视频网站最好?  教育培训网站制作流程,请问edu教育网站的域名怎么申请?  网站制作培训多少钱一个月,网站优化seo培训课程有哪些?  如何自定义建站之星网站的导航菜单样式?  如何在橙子建站上传落地页?操作指南详解  移民网站制作流程,怎么看加拿大移民官网? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。