Advertisement

C#中将图片转为二进制及二进制转图片的实例演示

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:PDF


简介:
本教程提供了一个详细的步骤说明和代码示例,展示如何在C#编程语言环境中实现图片到二进制数据以及反向转换的过程。 本段落主要介绍了如何使用C#实现图片与二进制数据之间的转换,并展示了在数据库中存储这些图像的具体方法。 一、将图片转为二进制 为了把一张图片转换成二进制格式,可以利用FileStream和BinaryReader类来读取文件内容并将其转化为字节数组。以下是一个示例代码: ```csharp private byte[] SaveImage(String path) { FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read); BinaryReader br = new BinaryReader(fs); byte[] imgBytesIn = br.ReadBytes((int)fs.Length); return imgBytesIn; } ``` 二、将二进制转为图片 反过来,如果需要把一个字节数组转换回图像格式的话,则可以使用MemoryStream和Image.FromStream方法。下面的代码展示了具体的实现方式: ```csharp public void ShowImgByByte(byte[] imgBytesIn) { MemoryStream ms = new MemoryStream(imgBytesIn); pictureBox1.Image = Image.FromStream(ms); } ``` 三、将图片保存到数据库 在C#中,可以使用ADO.NET框架来处理与SQL Server之间的交互。以下代码展示了如何利用这种方法把图像数据存储进数据库: ```csharp public void SaveImage(string MID, OpenFileDialog openF) { string strimg = openF.FileName.ToString(); FileStream fs = new FileStream(strimg, FileMode.Open, FileAccess.Read); BinaryReader br = new BinaryReader(fs); byte[] imgBytesIn = br.ReadBytes((int)fs.Length); getcon(); // 假设此函数用于建立数据库连接 StringBuilder strSql = new StringBuilder(); strSql.Append(update S_jiben Set xs_photo=@Photo where S_num= + MID); SqlCommand cmd = new SqlCommand(strSql.ToString(), link); cmd.Parameters.Add(@Photo, SqlDbType.Binary).Value = imgBytesIn; cmd.ExecuteNonQuery(); // 执行更新语句,将图片数据保存到数据库 } ``` 四、从数据库读取图片 最后一种情况是从数据库中检索图像。同样地,可以使用ADO.NET来完成这项任务,并通过MemoryStream和Bitmap类把二进制流还原为图像对象: ```csharp public void get_photo(string xs_ID, PictureBox ph) { byte[] imagebytes = null; getcon(); // 假设此函数用于建立数据库连接 SqlCommand con = new SqlCommand(select * from S_jiben where S_num= + xs_ID , link); SqlDataReader dr = con.ExecuteReader(); while (dr.Read()) { imagebytes =(byte[])dr.GetValue(18); // 获取图像数据 } dr.Close(); MemoryStream ms = new MemoryStream(imagebytes); Bitmap bmpt = new Bitmap(ms); ph.Image = bmpt; // 将图片显示在PictureBox控件中 } ``` 通过以上步骤,读者可以掌握如何使用C#进行文件与数据库之间的数据交互。

全部评论 (0)

还没有任何评论哟~
客服
客服
  • C#
    优质
    本教程提供了一个详细的步骤说明和代码示例,展示如何在C#编程语言环境中实现图片到二进制数据以及反向转换的过程。 本段落主要介绍了如何使用C#实现图片与二进制数据之间的转换,并展示了在数据库中存储这些图像的具体方法。 一、将图片转为二进制 为了把一张图片转换成二进制格式,可以利用FileStream和BinaryReader类来读取文件内容并将其转化为字节数组。以下是一个示例代码: ```csharp private byte[] SaveImage(String path) { FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read); BinaryReader br = new BinaryReader(fs); byte[] imgBytesIn = br.ReadBytes((int)fs.Length); return imgBytesIn; } ``` 二、将二进制转为图片 反过来,如果需要把一个字节数组转换回图像格式的话,则可以使用MemoryStream和Image.FromStream方法。下面的代码展示了具体的实现方式: ```csharp public void ShowImgByByte(byte[] imgBytesIn) { MemoryStream ms = new MemoryStream(imgBytesIn); pictureBox1.Image = Image.FromStream(ms); } ``` 三、将图片保存到数据库 在C#中,可以使用ADO.NET框架来处理与SQL Server之间的交互。以下代码展示了如何利用这种方法把图像数据存储进数据库: ```csharp public void SaveImage(string MID, OpenFileDialog openF) { string strimg = openF.FileName.ToString(); FileStream fs = new FileStream(strimg, FileMode.Open, FileAccess.Read); BinaryReader br = new BinaryReader(fs); byte[] imgBytesIn = br.ReadBytes((int)fs.Length); getcon(); // 假设此函数用于建立数据库连接 StringBuilder strSql = new StringBuilder(); strSql.Append(update S_jiben Set xs_photo=@Photo where S_num= + MID); SqlCommand cmd = new SqlCommand(strSql.ToString(), link); cmd.Parameters.Add(@Photo, SqlDbType.Binary).Value = imgBytesIn; cmd.ExecuteNonQuery(); // 执行更新语句,将图片数据保存到数据库 } ``` 四、从数据库读取图片 最后一种情况是从数据库中检索图像。同样地,可以使用ADO.NET来完成这项任务,并通过MemoryStream和Bitmap类把二进制流还原为图像对象: ```csharp public void get_photo(string xs_ID, PictureBox ph) { byte[] imagebytes = null; getcon(); // 假设此函数用于建立数据库连接 SqlCommand con = new SqlCommand(select * from S_jiben where S_num= + xs_ID , link); SqlDataReader dr = con.ExecuteReader(); while (dr.Read()) { imagebytes =(byte[])dr.GetValue(18); // 获取图像数据 } dr.Close(); MemoryStream ms = new MemoryStream(imagebytes); Bitmap bmpt = new Bitmap(ms); ph.Image = bmpt; // 将图片显示在PictureBox控件中 } ``` 通过以上步骤,读者可以掌握如何使用C#进行文件与数据库之间的数据交互。
  • 数据
    优质
    本项目旨在开发一种高效的算法或软件工具,能够将二进制格式的数据转换为可视化的图像形式,便于理解和分析。 将二进制数据转换成图片的基本方法是先读取二进制文件的内容,并将其解码为特定格式(如PNG或JPEG)。这通常可以通过编程语言中的库函数来实现,例如Python的PIL(Pillow)库或者Java的BufferedImage类。首先使用适当的编码方式将二进制数据解析成图像字节流,然后利用这些字节创建一个可以显示或保存为文件的图片对象。 具体步骤包括: 1. 读取和处理原始二进制数据。 2. 使用相应的解码器(如PNGDecoder)将其转换为位图信息。 3. 创建一个新的图形对象,并填充从二进制中提取的数据到该图像上。 4. 输出或保存这个新的图片文件。 这些步骤可以根据使用的编程语言和具体需求进行调整。
  • (PIC2RAW).rar
    优质
    图片转二进制(PIC2RAW).rar 是一个工具文件,能够将图像文件转换为原始二进制数据格式。该软件方便用户处理和传输图片信息。 图片转为二进制格式时,对于BMP 16位图的处理需要遵循特定规则以确保数据准确无误地转换并保持图像质量。在进行这种转换过程中,关键在于理解文件结构及其组成部分,并正确解析每个部分的数据。 具体来说,在将BMP 16位图图片转为二进制时,首先应读取和分析该文件的头信息(如BITMAPFILEHEADER、BITMAPINFOHEADER),以确定图像的具体参数。接着,根据这些参数来处理像素数据,将其转换成对应的二进制格式。 整个过程需要细致地考虑色彩位深及其它相关属性的影响,并且要确保最终生成的二进制文件能够被正确解析和使用。
  • 优质
    本文章介绍了如何在计算机系统中将图像数据转化为二进制形式,并探讨了相关的技术原理和应用场景。 图片转二进制代码工具类。
  • 在OLED上显
    优质
    本项目介绍了一种将图片转换为二进制数据并在OLED屏幕上进行显示的技术方法,适用于嵌入式系统开发与图像处理领域。 本工具用于将bmp图片转换为OLED显示的二进制数据!压缩包内包含了详细的使用方法。
  • BMP和PNG格式
    优质
    本项目提供了一种高效的算法及代码实现,能够把接收到的原始二进制数据流直接解析并转化为常见的BMP或PNG图像文件格式,便于进一步处理与展示。 在VS2010的C++环境中,如何将二进制流格式的图片转换为BMP格式,并进一步将其转换成PNG格式?
  • C语言
    优质
    本教程介绍如何使用C语言编写程序将十进制整数转换成对应的二进制表示形式,并提供详细代码示例和解析。 在编程领域,进制转换是一项基础且重要的技能。特别是在使用C语言进行开发时,我们经常需要将不同进制的数相互转换,在计算机科学的基础学习和实际应用中尤为重要。 我们需要理解十进制和二进制的概念。十进制是我们日常生活中最常用的数制,基于10个符号(0到9)进行计算。而二进制是计算机内部处理数据的基本方式,只有两个符号:0 和 1。这种形式的数字对于计算机来说易于处理,因为它们可以被直接映射为电路中的两种状态:开(1)或关(0)。 要将十进制数转换成二进制数,我们可以采用“除2取余”法: 1. 将给定的十进制数值除以 2 并记录商和余数。 2. 记录下每次操作产生的余数,并用上一步得到的新商继续进行同样的计算过程。 3. 当新商为0时,停止该循环步骤。 4. 然后将所有收集到的余数组合起来并逆序排列,便得到了原始十进制数值对应的二进制表示形式。 在C语言中实现这个算法可以定义一个函数 `dec_to_bin` 接受整型参数。通过使用循环结构来执行上述步骤:每次除法操作后将余数存入数组,并最终输出反转后的结果序列。 下面是一个简单的示例代码,展示了如何用 C 语言完成此功能: ```cpp #include #include void dec_to_bin(int n) { int binaryNum[32]; // 假设最大为32位整数 int i = 0; while (n > 0) { binaryNum[i] = n % 2; // 取余 n /= 2; // 进行除法操作,即除以二 i++; } printf(二进制形式为: ); for (int j = i - 1; j >= 0 ;j--) { printf(%d, binaryNum[j]); } } int main() { int decimalNum; printf(请输入一个十进制数: ); scanf(%d,&decimalNum); dec_to_bin(decimalNum); // 调用函数 return 0; } ``` 这段代码首先定义了一个 `dec_to_bin` 函数,它接受一个整型参数 `n` 并使用“除2取余”法将其转换为二进制。在主程序中,用户被要求输入一个十进制数,并调用该函数进行相应的数值转换和输出。 在这个过程中需要注意大数字可能超出数组限制的问题以及如何处理负数的特殊情况:通常情况下需要先将负数转成正数再执行二进制转换或者直接在结果前面加上符号位。 理解并实现从十进制到二进制的转换是学习C语言及计算机科学基础知识的重要环节。通过这一过程,我们能够更好地理解和应用数字在计算机中的表示形式,并掌握编程语言中数值类型的转化技巧。
  • C#和十六
    优质
    本文详细介绍了在C#编程语言中如何实现将十进制数转换成对应的二进制或十六进制表示的方法。 此算法不是调用系统自带的方法,而是自行编写完成的!当用户输入一个十进制数字后,程序会自动将其转换为二进制数与十六进制数;若输入非数字,则提示错误信息。
  • C++
    优质
    本文将详细介绍如何在C++编程语言中实现二进制数向十进制数的转换方法,并提供示例代码。 C++实现二进制转为十进制的案例简单易行,仅供参考。
  • 16代码反之亦然:16代码JPG
    优质
    本工具能够实现图像与16进制代码之间的相互转换,既可将任意图片转化为对应的16进制代码形式,也能从给定的16进制编码中还原出原始的JPG图片。 该工具可以将图片转换成16进制代码,并且也可以将16进制代码转换成jpg图片。