本文实例讲述了C#中图片、二进制与字符串的相互转换方法。分享给大家供大家参考,具体如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
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; } |
希望本文所述对大家C#程序设计有所帮助。