贴代码(两个方法)
///将Image对象转化成二进制流///
///</summary>
///<paramname="image"></param>
///<returns></returns>
public byte [] ImageToByteArray(Image image)
{
//实例化流
System.IO.MemoryStream imageStream = new System.IO.MemoryStream();
//将图片的实例保存到流中
image.Save(imageStream, System.Drawing.Imaging.ImageFormat.Jpeg);
//return imageStream;
//保存流的二进制数组
byte[] imageContent = new Byte[imageStream.Length];
imageStream.Position = 0;
//将流泻如数组中
imageStream.Read(imageContent, 0, (int)imageStream.Length);
return imageStream .ToArray ();
}
private string Changeto16(Image image)
{
StringBuilder tempStr =new StringBuilder ();
byte [] mybytes = ImageToByteArray(image);
for (int i = 0; i < mybytes.Length; i++)
{
// Convert.ToInt32("dfdf",2); tempStr.Append(Convert.ToString(mybytes[i], 16));
}
return tempStr.ToString().ToUpper();
}
我是把我等比例缩放处理过的图片image对象转换为十六进制,数据是出来了,但是把tempStr.ToString().ToUpper();的数据还原为图片就说它不是图片了。求解啊谢谢大家。
///将Image对象转化成二进制流///
///</summary>
///<paramname="image"></param>
///<returns></returns>
public byte [] ImageToByteArray(Image image)
{
//实例化流
System.IO.MemoryStream imageStream = new System.IO.MemoryStream();
//将图片的实例保存到流中
image.Save(imageStream, System.Drawing.Imaging.ImageFormat.Jpeg);
//return imageStream;
//保存流的二进制数组
byte[] imageContent = new Byte[imageStream.Length];
imageStream.Position = 0;
//将流泻如数组中
imageStream.Read(imageContent, 0, (int)imageStream.Length);
return imageStream .ToArray ();
}
private string Changeto16(Image image)
{
StringBuilder tempStr =new StringBuilder ();
byte [] mybytes = ImageToByteArray(image);
for (int i = 0; i < mybytes.Length; i++)
{
// Convert.ToInt32("dfdf",2); tempStr.Append(Convert.ToString(mybytes[i], 16));
}
return tempStr.ToString().ToUpper();
}
我是把我等比例缩放处理过的图片image对象转换为十六进制,数据是出来了,但是把tempStr.ToString().ToUpper();的数据还原为图片就说它不是图片了。求解啊谢谢大家。
解决方案 »
- C# 切换音轨代码
- c#怎么调用C的DLL?
- 求注册DLL的C#代码 最好是BAT文件
- StreamReader读取网页HTML是乱码
- 送分了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- 关于rediobuttonlist控件怎么来绑定数据,急,在线等。。。。。。
- [急.......]如何在RichTextBox中使输入的关键字变色,并根据输入的内容自动使文本变色??
- 【stackoverflow上没有得到关注和解答,回CSDN试试,懒得翻译回中文,凑合看看吧!你们也该练习下英语了!】
- 调用的目标发送了异常
- 请问一个SqlDataReader的问题,请大家帮忙解决,马上给分。
- 从TextBox1自动跳到TextBox2。谁会?
- pictureBox1.Image = Image.FromFile("F:\\fc三胞胎.jpg",true)为什么老是提示错误,路径没错呀!问题到底出在哪儿
{
StringBuilder hex = new StringBuilder(ba.Length * 2);
foreach (byte b in ba)
hex.AppendFormat("{0:x2}", b);
return hex.ToString();
}
or:public static string ByteArrayToString(byte[] ba)
{
string hex = BitConverter.ToString(ba);
return hex.Replace("-","");
}
There are even more variants of doing it, for example here.The reverse conversion would go like this:public static byte[] StringToByteArray(String hex)
{
int NumberChars = hex.Length;
byte[] bytes = new byte[NumberChars / 2];
for (int i = 0; i < NumberChars; i += 2)
bytes[i / 2] = Convert.ToByte(hex.Substring(i, 2), 16);
return bytes;
}代码来自:
http://stackoverflow.com/questions/311165/how-do-you-convert-byte-array-to-hexadecimal-string-and-vice-versa-in-c