C#将图片和字节流互相转换并显示到页面上

图片转换成字节流先要转换的IMage对象,转换之后返回字节流。字节流转换成图片,要转换的字节流,转换得到的Image对象,根据图片路径返回图片的字节流,感兴趣的朋友看下下面的代码。

C#将图片和字节流相互转换代码:

usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Drawing;
usingSystem.IO;
namespaceMicrosoft.Form.Base
{
classImageToByte
{
/// <summary>
/// 图片转换成字节流
/// </summary>
/// <param name="img">要转换的Image对象</param>
/// <returns>转换后返回的字节流</returns>
publicstaticbyte[] ImgToByt(Image img)
{
MemoryStream ms = newMemoryStream();
byte[] imagedata = null;
img.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
imagedata = ms.GetBuffer();
returnimagedata;
}
/// <summary>
/// 字节流转换成图片
/// </summary>
/// <param name="byt">要转换的字节流</param>
/// <returns>转换得到的Image对象</returns>
publicstaticImage BytToImg(byte[] byt)
{
MemoryStream ms = newMemoryStream(byt);
Image img = Image.FromStream(ms);
returnimg;
}
//
/// <summary>
/// 根据图片路径返回图片的字节流byte[]
/// </summary>
/// <param name="imagePath">图片路径</param>
/// <returns>返回的字节流</returns>
privatestaticbyte[] getImageByte(stringimagePath)
{
FileStream files = newFileStream(imagePath, FileMode.Open);
byte[] imgByte = newbyte[files.Length];
files.Read(imgByte, 0, imgByte.Length);
files.Close();
returnimgByte;
}
}
}

将字节流转换为图片文件显示到页面上

//Byte[] result;
System.IO.MemoryStream ms =new MemoryStream(result, 0, result.Length)
 Response.ClearContent();
 Response.ContentType = "image/Gif";
 Response.BinaryWrite(ms.ToArray());
或者添加一个处理图片的Handler,内容如下:
<%@ WebHandler Language="C#" Class="Handler" %>
using System.Web;
using System.IO;

public class Handler : IHttpHandler {
 public void ProcessRequest (HttpContext context) {
 int CategoryID = int.Parse(context.Request.QueryString["CategoryID"]);
 //调用Categories.GetPicture取得图片stream
 Stream stream = CategoriesPicture.GetPicture(CategoryID);
 if (stream !=null) {
 //取得图片stream大小
 int buffersize = (int)stream.Length;
 //建立buffer
 System.Byte[] buffer = new System.Byte[buffersize ] ;
 //调用stream.Read,从stream读取到buffer,并返回count
 int count = stream.Read(buffer, 0, buffersize);
 //返回图片字段buffer
 if (count!=0)
 context.Response.OutputStream.Write(buffer, 0, count);
 }
 }
 public bool IsReusable {
 get {
 return false;
 }
 }
}

以上就是本文的全部内容,希望对大家学习C#将图片和字节流互相转换并显示到页面上有所帮助。

(0)

相关推荐

  • C# 将字节流转换为图片的实例方法

    复制代码 代码如下: usingSystem; usingSystem.Collections.Generic; usingSystem.Linq; usingSystem.Text; usingSystem.Drawing; usingSystem.IO; namespaceMicrosoft.Form.Base {     classImageToByte     {         /// <summary>         /// 图片转换成字节流         /// </s

  • C#实现的图片、string相互转换类分享

    C#中,Image为源自 Bitmap 和 Metafile 的类提供功能的抽象基类,也就是说更通用,当我们用Image.FromFile("xxx")时创建出来的是Image的某个派生类实体,所以我用Image作为参数,而不是Bitmap之类的. 图片在于string转换的时候中间借助于MemorySteam和Byte数组,下面是我写的FormatChange类,里面两个互相转换的过程.当然这里面也就包含了图片与Byte[]数组的相互转换喽. class FormatChange {

  • asp.net(c#)实现从sqlserver存取二进制图片的代码

    下面说说主要实现思路: 1.存取图片 (1).将图片文件转换为二进制并直接存进sql server 复制代码 代码如下: //UploadHelper.cs /// <summary> /// 将图片转化为长二进制 /// </summary> /// <param name="photopath"></param> /// <returns></returns> public static Byte[] SetI

  • C# 图片与二进制转换的简单实例

    复制代码 代码如下: ///图片转二进制private byte[] convertByte(Image img){    MemoryStream ms = new MemoryStream();    img.Save(ms, img.RawFormat);    //byte[] bytes = new byte[ms.Length];    //ms.Read(bytes, 0, Convert.ToInt32(ms.Length));    //以上两句改成下面两句    byte[]

  • C#简易图片格式转换器实现方法

    本文实例讲述了C#简易图片格式转换器实现方法.分享给大家供大家参考,具体如下: 在窗体上放一个picturebox,menustrip.在菜单上键入两个按钮,分别为"文件","格式".在"文件"下创建一个子菜单"打开",name为menuOpen,在"格式"下创建一个子菜单"转换格式",name为menuConvert. using System; using System.Collec

  • c# Base64编码和图片的互相转换代码

    事出有因 我们已经做了一个编辑器,这个编辑器可以以xml格式存储一些信息.在存储图片信息时我们碰到了一些问题.我们本来在xml信息中存储的是图片的路径,然而一旦客户把这个信息copy到其他电脑上而没有同时copy相关的图片时,就会出现一些问题.          后来,我们把图片数据转换为Base64编码,替代了原先存储图片路径的方式. 转换流程 将图片转化为Base64字符串的流程是:首先使用BinaryFormatter将图片文件序列化为二进制数据,然后使用Convert类的ToBase64

  • C#中图片.BYTE[]和base64string的转换方法

    在C#中 图片到byte[]再到base64string的转换: Bitmap bmp = new Bitmap(filepath); MemoryStream ms = new MemoryStream(); bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Gif); byte[] arr = new byte[ms.Length]; ms.Position = 0; ms.Read(arr, 0, (int)ms.Length); ms.Clo

  • C#实现把图片转换成二进制以及把二进制转换成图片的方法示例

    本文实例讲述了C#实现把图片转换成二进制以及把二进制转换成图片的方法.分享给大家供大家参考,具体如下: private void button1_Click(object sender, EventArgs e) { string path = this.textBox1.Text; byte[] imgBytesIn = SaveImage(path); ShowImgByByte(imgBytesIn); //Parameters.Add("@Photo", SqlDbType.B

  • C# 将透明图片的非透明区域转换成Region的实例代码

    需要设置允许不安全代码.....项目->属性->生成->允许不安全代码 复制代码 代码如下: /// <summary>        /// 根据图片得到一个图片非透明部分的区域      /// </summary>        /// <param name="bckImage"></param>        /// <returns></returns>        private

  • C#中图片、二进制与字符串的相互转换方法

    本文实例讲述了C#中图片.二进制与字符串的相互转换方法.分享给大家供大家参考,具体如下: protected void Button1_Click(object sender, EventArgs e) { //图片转二进制 byte[] imageByte = GetPictureData(Server.MapPath("./uploadfile/111.png")); //二进制转换成字符串 string picStr = Convert.ToBase64String(imageB

  • 详谈C# 图片与byte[]之间以及byte[]与string之间的转换

    实例如下: //主要通过Stream作为中间桥梁 public static Image ByteArrayToImage(byte[] iamgebytes) { MemoryStream ms = new MemoryStream(iamgebytes); Image image = Image.FromStream(ms); return image; } public static byte[] ImageToByteArray(Image image) { MemoryStream m

随机推荐