资源简介
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个文件信息
相关资源
- C#与三菱QL系列以太网(MELSEC)PLC交互
- C# FTP 控件edtftpnet pro8.3及注册码-2
- 西门子PLC与上位机C#源码Snap7.rar
- C#,串口通信,简洁界面,初学
- Wince 条码扫描
- 人机对战版五子棋C#源代码解压密码:
- C#经典视频教程BT
- C# Nlog日志使用并发送邮件
- C#编写简单的示波器
- 光功率计上位机C#
- AE C# 空间查询基于点,线,面
- C# 任务管理器及控制台获取CPU占用率
- 简单的开放论坛系统ASP.NET 2.0
- C# 实现的九宫格样式
- C#实现CRC32校验码运算
- C#版Socket通信含服务端、客户端、We
- C#.NET编程与S7-200_PLC自由口通信
- C#调用USB接口斑马打印机.rar
- C# Winform数值实时曲线完整
- C#编写的基于UDP的多人聊天系统
- c#高斯正算
- 用c#写的web浏览器--网页嵌入
- C# directX 3d对象拾取
- direct3d C#绘制三角形的 d3d
- 串口通信 wpf C#
- AutoCAD VBA&VB;.NET开发基础与教程C#版 教
- C#_真正可以透明的控件.rar
- c#获取打印机当前打印状态完整源码
- 基于SQL数据库和C#的学生成绩查询系统
- 切割钢材经典问题求解 c#
评论
共有 条评论