资源简介
栅格数据块状压缩编码的C#源码,由VS2010实现,是最简单的编码方式,可以直接调用。
代码片段和文件信息
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的翻牌小游戏
相关资源
- 关于DirectX的翻牌小游戏
- 停车场管理系统C#全
- c#调用matlab画图
-
C#代码 NIVision Image To HalconImaget Hob
- C# winform ListView 中实现可编辑文本或双
- C# 绚丽仪表控件,开关控件,彩色圆
- C# 生等值线 等值面 算法
- wifirobot C#上位机
- usbkey开发代码 c#
- C# 局域网聊天程序 一个服务器多个客
- C#断点续传包含客户端、服务器端代码
- .net(C#)用户登陆自定义控件
- C#循环队列
- asp.net 三层架构,经典源码
- asp.net 站内邮件系统c#
- xmodem通讯协议c#源码全网独一份绝对值
- c#实现u盘操作程序,可进行对u盘的感
- Modbus串口通信
- 旅游网站毕业论文
- c#WinForm程序自动升级源码
- 《ArcGIS Engine+C#开发教程》
- c#文件自动备份程序
- 精美时钟()
- NTKO OFFICE 4.0.3.2--完美破解+WinformDemo[
- C#小型窗体项目-BMI计算器
- C#实现本机资源监控
- C#微秒级计时器
- c#+SQL server物资管理系统
- c#gps原代码
- C#绘图工具DrawTools2005
评论
共有 条评论