资源简介
栅格数据块状压缩编码的C#源码,由VS2010实现,是最简单的编码方式,可以直接调用。
![](http://www.nz998.com/pic/43869.jpg)
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace BlockCode
{
///
/// 单个块的结构---四元组结构
///
public struct block
{
///
/// 块的左上角x坐标——列号
///
public int xTopLeft;
///
/// 块的左上角y坐标——行号
///
public int yTopLeft;
///
/// 块的尺寸
///
public int blockszie;
///
/// 块的值
///
public float value;
}
//块状编码
///
///
///
class BlockCodeClass
{
private bool[] visited;
//原始数据行列数
int rowCount = 0;
int colCount = 0;
//当前块的起始位置
int[] location = new int[2];
public BlockCodeClass()
{ }
///
/// 数据压缩
///
/// 四元组链表
public List Compress(float[] data)
{
//获取原始数组行列数
rowCount = data.GetLength(0);
colCount = data.GetLength(1);
//初始化压缩编码存储结构体
List ComData = new List();
//初始化访问标示矩阵
visited = new bool[rowCount colCount];
for (int i = 0; i < rowCount; i++)
for (int j = 0; j < colCount; j++)
{
visited[i j] = false;
}
//块状压缩编码
bool endCode = false;
int row = 0;
int col = 0;
while (!endCode)
{
int r = 1;
float value = data[row col];
bool endSearch = false;
//生成压缩块
while (!endSearch)
{
r = r+1;
//当前尺寸的块不越界
if ((row + r - 1 < rowCount) && (col + r - 1 < colCount))
{
for (int i = row j = col + r - 1; i < row + r; i++)
{
if (data[i j] != value||visited[ij])
{
endSearch = true;
break;
}
}
if (!endSearch)
{
for (int i = row + r - 1 j = col; j < col + r; j++)
{
if (data[i j] != value || visited[i j])
{
endSearch = true;
break;
}
}
}
}
else
break;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2012-07-04 20:38 BlockCode\
目录 0 2012-07-04 20:39 BlockCode\BlockCode\
文件 869 2012-07-04 20:38 BlockCode\BlockCode.sln
文件 16384 2012-07-08 15:54 BlockCode\BlockCode.suo
目录 0 2012-07-04 20:38 BlockCode\BlockCode\bin\
目录 0 2012-07-08 15:52 BlockCode\BlockCode\bin\Debug\
文件 7168 2012-07-08 15:54 BlockCode\BlockCode\bin\Debug\BlockCode.exe
文件 19968 2012-07-08 15:54 BlockCode\BlockCode\bin\Debug\BlockCode.pdb
文件 11600 2012-07-08 15:54 BlockCode\BlockCode\bin\Debug\BlockCode.vshost.exe
文件 490 2010-03-17 22:39 BlockCode\BlockCode\bin\Debug\BlockCode.vshost.exe.manifest
文件 2484 2012-07-04 20:51 BlockCode\BlockCode\BlockCode.csproj
文件 5729 2012-07-08 15:54 BlockCode\BlockCode\BlockCodeClass.cs
目录 0 2012-07-04 20:38 BlockCode\BlockCode\obj\
目录 0 2012-07-04 20:38 BlockCode\BlockCode\obj\x86\
目录 0 2012-07-08 15:54 BlockCode\BlockCode\obj\x86\Debug\
文件 269 2012-07-08 15:54 BlockCode\BlockCode\obj\x86\Debug\BlockCode.csproj.FileListAbsolute.txt
文件 7168 2012-07-08 15:54 BlockCode\BlockCode\obj\x86\Debug\BlockCode.exe
文件 19968 2012-07-08 15:54 BlockCode\BlockCode\obj\x86\Debug\BlockCode.pdb
文件 5752 2012-07-08 15:54 BlockCode\BlockCode\obj\x86\Debug\DesignTimeResolveAssemblyReferencesInput.cache
目录 0 2012-07-04 20:38 BlockCode\BlockCode\obj\x86\Debug\TempPE\
文件 1965 2012-07-08 15:52 BlockCode\BlockCode\Program.cs
目录 0 2012-07-04 20:38 BlockCode\BlockCode\Properties\
文件 1350 2012-07-04 20:38 BlockCode\BlockCode\Properties\AssemblyInfo.cs
- 上一篇:停车场管理系统C#全
- 下一篇:关于DirectX的翻牌小游戏
相关资源
- Winform可视化打印模板设计工具含源码
- C# 软件版本更新
- C#屏幕软键盘源码,可以自己定制界面
- 智慧城市 智能家居 C# 源代码
- c#获取mobile手机的IMEI和IMSI
- C#实现简单QQ聊天程序
- 操作系统 模拟的 欢迎下载 C#版
- C#写的计算机性能监控程序
- 用C#实现邮件发送,有点类似于outlo
- MVC model层代码生成器 C#
- c#小型图书销售系统
- C# Socket Server Client 通讯应用 完整的服
- c# winform 自动登录 百度账户 源代码
- C#编写的16进制计算器
- C#TCP通信协议
- C# 数据表(Dataset)操作 合并 查询一
- C#语音识别系统speechsdk51,SpeechSDK51L
- 数据库备份还原工具1.0 C# 源码
-
[免费]xm
lDocument 节点遍历C# - EQ2008LEDc#开发实例
- DirectX.Capturec# winform 操作摄像头录像附
- c# 实现的最大最小距离方法对鸢尾花
- C#版保龄球记分代码
- C#自定义控件
- 基于c#的实验室设备管理系统621530
- C# 使用ListView控件实现图片浏览器(源
- C#简单窗体聊天程序
- C#指纹识别系统程序 报告
- c# 高校档案信息管理系统
- c#向word文件插入图片
评论
共有 条评论