资源简介
C#实现对压缩的DAT图像数据文件的读取,将二进制数据文件按照一定的尺寸还原为bmp图像文件,显示在界面上,同时可以实现将二进制图像保存在数据库中

代码片段和文件信息
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Imaging;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Data.SqlClient;
namespace 读取dat文件
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
byte[] bytes = new byte[512000]; //提取的单张图像数据
byte[] bytes_new = new byte[512000]; //调整好序列的图像数据
byte xg;
///
/// 将一个字节数组转换为8bit灰度位图
///
/// 显示字节数组
/// 图像宽度
/// 图像高度
/// 位图
public static Bitmap ToGrayBitmap(byte[] rawValues int width int height)
{
//// 申请目标位图的变量,并将其内存区域锁定
Bitmap bmp = new Bitmap(width height PixelFormat.Format8bppIndexed);
BitmapData bmpData = bmp.LockBits(new Rectangle(0 0 width height) ImageLockMode.WriteOnly PixelFormat.Format8bppIndexed);
//// 获取图像参数
int stride = bmpData.Stride; // 扫描线的宽度
int offset = stride - width; // 显示宽度与扫描线宽度的间隙
IntPtr iptr = bmpData.Scan0; // 获取bmpData的内存起始位置
int scanBytes = stride * height; // 用stride宽度,表示这是内存区域的大小
//// 下面把原始的显示大小字节数组转换为内存中实际存放的字节数组
int posScan = 0 posReal = 0; // 分别设置两个位置指针,指向源数组和目标数组
byte[] pixelValues = new byte[scanBytes]; //为目标数组分配内存
for (int x = 0; x < height; x++)
{
//// 下面的循环节是模拟行扫描
for (int y = 0; y < width; y++)
{
pixelValues[posScan++] = rawValues[posReal++];
}
posScan += offset; //行扫描结束,要将目标位置指针移过那段“间隙”
}
//// 用Marshal的Copy方法,将刚才得到的内存字节数组复制到BitmapData中
System.Runtime.InteropServices.Marshal.Copy(pixelValues 0 iptr scanBytes);
bmp.UnlockBits(bmpData); // 解锁内存区域
//// 下面的代码是为了修改生成位图的索引表,从伪彩修改为灰度
ColorPalette tempPalette;
using (Bitmap tempBmp = new Bitmap(1 1 PixelFormat.Format8bppIndexed))
{
tempPalette = tempBmp.Palette;
}
for (int i = 0; i < 256; i++)
{
Color ColorTemp = Color.FromArgb(i i i);
tempPalette.Entries[i] = ColorTemp;
}
bmp.Palette = tempPalette;
//// 算法到此结束,返回结果
return bmp;
}
///
/// 查询
///
///
///
private void button1_Click(object sender EventArgs e)
{
//读取图号
int tuhao = Convert.T
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2012-12-23 11:02 读取dat文件\
目录 0 2012-12-23 11:02 读取dat文件\读取dat文件\
文件 887 2012-12-05 17:18 读取dat文件\读取dat文件.sln
文件 23040 2013-06-21 14:41 读取dat文件\读取dat文件.suo
目录 0 2012-12-23 11:02 读取dat文件\读取dat文件\bin\
目录 0 2012-12-23 11:02 读取dat文件\读取dat文件\bin\Debug\
文件 13312 2012-12-18 11:44 读取dat文件\读取dat文件\bin\Debug\读取dat文件.exe
文件 28160 2012-12-18 11:44 读取dat文件\读取dat文件\bin\Debug\读取dat文件.pdb
文件 11600 2013-06-21 14:40 读取dat文件\读取dat文件\bin\Debug\读取dat文件.vshost.exe
文件 490 2010-03-17 22:39 读取dat文件\读取dat文件\bin\Debug\读取dat文件.vshost.exe.manifest
文件 8528 2013-06-21 14:41 读取dat文件\读取dat文件\Form1.cs
文件 6546 2013-06-21 14:41 读取dat文件\读取dat文件\Form1.Designer.cs
文件 5817 2013-06-21 14:41 读取dat文件\读取dat文件\Form1.resx
目录 0 2012-12-23 11:02 读取dat文件\读取dat文件\obj\
目录 0 2012-12-23 11:02 读取dat文件\读取dat文件\obj\x86\
目录 0 2013-06-21 14:40 读取dat文件\读取dat文件\obj\x86\Debug\
文件 5136 2013-06-21 14:40 读取dat文件\读取dat文件\obj\x86\Debug\DesignTimeResolveAssemblyReferences.cache
文件 6611 2013-06-21 14:40 读取dat文件\读取dat文件\obj\x86\Debug\DesignTimeResolveAssemblyReferencesInput.cache
文件 236 2012-12-18 10:30 读取dat文件\读取dat文件\obj\x86\Debug\GenerateResource.read.1.tlog
文件 570 2012-12-18 10:30 读取dat文件\读取dat文件\obj\x86\Debug\GenerateResource.write.1.tlog
文件 7897 2012-12-05 17:39 读取dat文件\读取dat文件\obj\x86\Debug\ResolveAssemblyReference.cache
目录 0 2012-12-05 17:17 读取dat文件\读取dat文件\obj\x86\Debug\TempPE\
文件 1540 2013-06-21 14:40 读取dat文件\读取dat文件\obj\x86\Debug\读取dat文件.csproj.FileListAbsolute.txt
文件 13312 2012-12-18 11:44 读取dat文件\读取dat文件\obj\x86\Debug\读取dat文件.exe
文件 180 2012-12-18 10:30 读取dat文件\读取dat文件\obj\x86\Debug\读取dat文件.Form1.resources
文件 28160 2012-12-18 11:44 读取dat文件\读取dat文件\obj\x86\Debug\读取dat文件.pdb
文件 180 2012-12-05 17:22 读取dat文件\读取dat文件\obj\x86\Debug\读取dat文件.Properties.Resources.resources
文件 496 2012-12-05 17:17 读取dat文件\读取dat文件\Program.cs
目录 0 2012-12-23 11:02 读取dat文件\读取dat文件\Properties\
文件 1362 2012-12-05 17:17 读取dat文件\读取dat文件\Properties\AssemblyInfo.cs
文件 2880 2012-12-05 17:17 读取dat文件\读取dat文件\Properties\Resources.Designer.cs
............此处省略4个文件信息
相关资源
- asp.net C#购物车源代码
- C#实时网络流量监听源码
- C#百度地图源码
- Visual C#.2010从入门到精通配套源程序
- 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#简单窗体聊天程序
评论
共有 条评论