• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > C#实现图片分割方法与代码

C#实现图片分割方法与代码

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c#未实现该方法或操作,c#get set方法,c#invoke方法,c#方法,c#虚方法等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
1. 概述
有时候我们需要在web页面上显示一张图,比如说一张地图,而这张地图会比较大。这时候如果我们把一张大图分隔成一组小图,那么客户端的显示速度会明显地感觉块。希望阅读本文对你有所帮助。
2. 实现思路
.NET Framework GDI+ 为我们提供了一组丰富地类来编辑图形图像。有关.NET Framework GDI+的详细资料请查阅msdn相关文档。这里只简要叙述本程序要用的的几个类。
System.Drawing.Image.LoadFile 方法可以从指定的文件创建 Image 对象。System.Drawing.Image.Save方法可以将此 Image 对象保存到指定文件。 System.Drawing.Image.Width和System.Drawing.Image.Height属性可以得到图片的宽度和高度。
System.Drawing.Graphics类可以编辑图像。System.Drawing.Graphics.DrawImage方法在指定位置并且按指定大小绘制指定的 Image 对象的指定部分。
图片分隔说明:就是把一张大图,按指定的宽度和高度分隔成一组小块
对初学者的提示:在我们读书时学过的数学坐标如图2所示,在GDI+里的坐标如图3所示
3. 实现代码
 1public class CropImageManipulator
 2    {
 3        public CropImageManipulator()
 4        {
 5            
 6        }
 7
 8        // 不含扩展名的文件名
 9        private string _fileNameWithoutExtension;
10        // 文件扩展名
11        private string _fileExtension;
12        // 文件所属的文件夹
13        private string _fileDirectory;
14        public string Cropping(string inputImgPath, int cropWidth, int cropHeight)
15        {
16            this._fileNameWithoutExtension = System.IO.Path.GetFileNameWithoutExtension(inputImgPath);
17            this._fileExtension = System.IO.Path.GetExtension(inputImgPath);
18            this._fileDirectory = System.IO.Path.GetDirectoryName(inputImgPath);
19            
20            // 装载要分隔的图片
21            Image inputImg = Image.FromFile(inputImgPath);
22            int imgWidth = inputImg.Width;
23            int imgHeight = inputImg.Height;
24            
25            // 计算要分几格
26            int widthCount = (int)Math.Ceiling((imgWidth * 1.00) / (cropWidth * 1.00));
27            int heightCount = (int)Math.Ceiling((imgHeight * 1.00) / (cropHeight * 1.00));
28            //----------------------------------------------------------------------
29            ArrayList areaList = new ArrayList();
30            
31            System.Text.StringBuilder sb = new System.Text.StringBuilder();
32            sb.Append("<table cellpadding='0' cellspacing='0' border='[$border]'>");
33            sb.Append(System.Environment.NewLine);
34
35            int i = 0;
36            for (int iHeight = 0; iHeight < heightCount ; iHeight ++)
37            {
38                sb.Append("<tr>");
39                sb.Append(System.Environment.NewLine);
40                for (int iWidth = 0; iWidth < widthCount ; iWidth ++)
41                {
42                    //string fileName = "<img src='http://localhost/SRcommBeijingFile/"  + this._fileNameWithoutExtension + " _" + i.ToString() + this._fileExtension + "'>";
43                    string fileName = string.Format("<img src='http://localhost/SRcommBeijingFile/{0}_{1}{2}'  />",this._fileNameWithoutExtension,i,this._fileExtension);
44                    sb.Append("<td>" + fileName + "</td>");
45                    sb.Append(System.Environment.NewLine);
46
47
48                    int pointX = iWidth * cropWidth;
49                    int pointY = iHeight * cropHeight;
50                    int areaWidth = ((pointX + cropWidth) > imgWidth) ? (imgWidth - pointX) : cropWidth;
51                    int areaHeight = ((pointY + cropHeight) > imgHeight) ? (imgHeight - pointY) : cropHeight;
52                    string s = string.Format("{0};{1};{2};{3}",pointX,pointY,areaWidth,areaHeight);
53                    
54                   
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C#实现组合排列的方法
  • c#图片上传和显示的实现方法
  • C#实现简单播放mp3的方法
  • C#实现随机洗牌的方法
  • C#打印绘图的实现方法
  • C#播放铃声最简单实现方法
  • C#中实现多继承的方法
  • C#中实现屏蔽Ctrl+C的方法
  • C#实现图片上传与浏览切换的方法
  • C# TrieTree介绍及实现方法

相关文章

  • 2017-05-28浅谈C#基础之类的访问修饰符
  • 2017-05-28C#使用第三方组件生成二维码汇总
  • 2017-05-28C#中DataTable 转换为 Json的方法汇总(三种方法)
  • 2017-05-28C# WinForm制作异形窗体与控件的方法
  • 2017-05-28C#抓取网页数据 解析标题描述图片等信息 去除HTML标签
  • 2017-05-28C#中方括号[]的语法及作用介绍
  • 2017-05-28Unity3D中脚本的执行顺序和编译顺序
  • 2017-05-28C# Guid.NewGuid获得随机数
  • 2017-05-28c++函数转c#函数示例程序分享
  • 2017-05-28C#中const用法详解

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 浅析JAVA中过滤器、监听器、拦截器的区别
    • 基于C# MBG 扩展方法类库的使用详解
    • C#实现简单获取扫码枪信息代码
    • C#基础知识之this关键字介绍
    • C#实现基于XML配置MenuStrip菜单的方法
    • C#简单读写txt文件的方法
    • newtonsoft.json解析天气数据出错解决方法
    • c#多线程中Lock()关键字的用法小结
    • C#删除只读文件或文件夹(解决File.Delete无法删除文件)
    • C# 创建报表过程详解

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有