欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2024-02-08 22:14:46
本文实例讲述了c#中图片、二进制与字符串的相互转换方法。分享给大家供大家参考,具体如下: protected void button1_click(object...

本文实例讲述了c#中图片、二进制与字符串的相互转换方法。分享给大家供大家参考,具体如下:

protected void button1_click(object sender, eventargs e)
{
  //图片转二进制
  byte[] imagebyte = getpicturedata(server.mappath("./uploadfile/111.png"));
  //二进制转换成字符串
  string picstr = convert.tobase64string(imagebyte);
  //输出字符串
  response.write(picstr);
  //字符串转二进制
  byte[] imagebytes = convert.frombase64string(picstr);
  //读入memorystream对象
  memorystream memorystream = new memorystream(imagebytes, 0, imagebytes.length);
  memorystream.write(imagebytes, 0, imagebytes.length);
  //二进制转成图片保存
  system.drawing.image image = system.drawing.image.fromstream(memorystream);
  image.save(server.mappath("./uploadfile/222.png"));
}
/// <summary>
/// 二进制流转图片
/// </summary>
/// <param name="streambyte">二进制流</param>
/// <returns>图片</returns>
public system.drawing.image returnphoto(byte[] streambyte)
{
  system.io.memorystream ms = new system.io.memorystream(streambyte);
  system.drawing.image img = system.drawing.image.fromstream(ms);
  return img;
}
/// <summary>
/// 图片转二进制
/// </summary>
/// <param name="imagepath">图片地址</param>
/// <returns>二进制</returns>
public byte[] getpicturedata(string imagepath)
{
  //根据图片文件的路径使用文件流打开,并保存为byte[]
  filestream fs = new filestream(imagepath, filemode.open);//可以是其他重载方法
  byte[] bydata = new byte[fs.length];
  fs.read(bydata, 0, bydata.length);
  fs.close();
  return bydata;
}
/// <summary>
/// 图片转二进制
/// </summary>
/// <param name="imgphoto">图片对象</param>
/// <returns>二进制</returns>
public byte[] photoimageinsert(system.drawing.image imgphoto)
{
  //将image转换成流数据,并保存为byte[]
  memorystream mstream = new memorystream();
  imgphoto.save(mstream, system.drawing.imaging.imageformat.bmp);
  byte[] bydata = new byte[mstream.length];
  mstream.position = 0;
  mstream.read(bydata, 0, bydata.length);
  mstream.close();
  return bydata;
}

ps:这里小编再给大家推荐本站的一款图片转base64格式的在线转换工具,非常具有实用价值:

在线图片转换base64工具:

更多关于c#相关内容感兴趣的读者可查看本站专题:《c#常见控件用法教程》、《winform控件用法总结》、《c#数据结构与算法教程》、《c#面向对象程序设计入门教程》及《c#程序设计之线程使用技巧总结

希望本文所述对大家c#程序设计有所帮助。