C#中怎么把byte数组转换成文件保存到本地? 就是我接收到一个byte数组,怎么把这个数组保存成.jpg文件,然后保存到本地啊求助高手解答!~~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 BitConverter.ToString()转换成字符串保存BitConverter.GetBytes()转换回数组使用 我是要把byte数组转换成.jpg文件然后保存到本地望高手附上实现代码!~谢谢啊!~~~ using System.IO;File.WriteAllBytes(路径, 数组); 4楼已经给出来了。估计楼主看不懂。详细一下System.IO.File.WriteAllBytes(@"c:\test.jpg", your_bytes); 嗯.呵呵.厉害.没想到可以直接写成一个JPG文件. IHccSDKPara HSDKP = new IHccSDKPara(); byte[] newdata = HSDKP.GetByteImageData(host, cmd_port, tcp_data_port, clientname, cameraname, nType); int m_nImageSize = HSDKP.m_nImageSize; int m_nImageWidth = HSDKP.m_nImageWidth; int m_nImageHeight = HSDKP.m_nImageHeight; bool Flag; string path = Application.StartupPath + @"\capture.bmp"; if (0 == newdata.Length) { Flag = false; pictureBox1.ImageLocation = path; } else { Flag = true; IntPtr outptr = Marshal.UnsafeAddrOfPinnedArrayElement(newdata, 0); //取得newdata数组地址 //************(将最后m_nImageWidth长度的数据放到第一行,倒数第二行放到第二行,依此规律组合)************************* Bitmap productImage = new Bitmap(m_nImageWidth, m_nImageHeight); System.Drawing.Imaging.BitmapData imageData = productImage.LockBits(new Rectangle(0, 0, productImage.Width, productImage.Height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb); IntPtr ptr = imageData.Scan0; byte[] byteData = new byte[m_nImageSize]; Marshal.Copy(outptr, byteData, 0, m_nImageSize); Marshal.Copy(byteData, 0, ptr, m_nImageSize); productImage.UnlockBits(imageData); //解决"GDI+绘图发生一般性错误" Bitmap bmap = new Bitmap(m_nImageWidth, m_nImageHeight, PixelFormat.Format24bppRgb); Graphics draw = Graphics.FromImage(bmap); float WidthRate = (float)Math.Round((decimal)352 / m_nImageWidth, 4); float HeightRate = (float)Math.Round((decimal)288 / m_nImageHeight, 4); draw.ScaleTransform(WidthRate, HeightRate); draw.DrawImage(productImage, 0, 0); pictureBox1.Image = (Image)bmap; productImage.Save(path, ImageFormat.Jpeg); //解决"GDI+绘图发生一般性错误" draw.Dispose(); productImage.Dispose(); } 标记一下,我以前还用过这个。System.Text.Encoding.Default.GetString(bytes) File.WriteAllBytes(路径, 数组); 这样做咯,最简单啦。 我给你把代码写出来using System.IO;MemoryStream ms=new MemoryStream(Byte[] b); 把那个byte[]数组传进去,然后FileStream fs=new FileStream(路径 例如:"D:\image\myimage.jpg");ms.writeto(fs);ms.close();fs.close();可以了,我用过的,没问题 c#有关问题 问下C# 泛型如何复制内容? C#winform和WEB的通信方式有那些? StandardOutput 问题 关于 水晶报表打印问题 菜鸟问题:我下了个outlookbar,使用有点问题; C#模糊查询。提示“脚本错误”? winform中,如何首先禁止datagrid 自动添加行,同时又能分别通过3个button来控制行的增删改?? 怎么用那个资源编辑啊,怎么把图片弄到那个resx文件里去啊,还有在CS里怎么用啊?? Why I can't Convert this string to Double? IP地址输出的问题 C#开发ActiveX控件及制作CAB包无法下载安装
File.WriteAllBytes(路径, 数组);
嗯.呵呵.厉害.没想到可以直接写成一个JPG文件.
IHccSDKPara HSDKP = new IHccSDKPara();
byte[] newdata = HSDKP.GetByteImageData(host, cmd_port, tcp_data_port, clientname, cameraname, nType);
int m_nImageSize = HSDKP.m_nImageSize;
int m_nImageWidth = HSDKP.m_nImageWidth;
int m_nImageHeight = HSDKP.m_nImageHeight;
bool Flag;
string path = Application.StartupPath + @"\capture.bmp";
if (0 == newdata.Length)
{
Flag = false;
pictureBox1.ImageLocation = path;
}
else
{
Flag = true;
IntPtr outptr = Marshal.UnsafeAddrOfPinnedArrayElement(newdata, 0); //取得newdata数组地址
//************(将最后m_nImageWidth长度的数据放到第一行,倒数第二行放到第二行,依此规律组合)*************************
Bitmap productImage = new Bitmap(m_nImageWidth, m_nImageHeight);
System.Drawing.Imaging.BitmapData imageData = productImage.LockBits(new Rectangle(0, 0, productImage.Width, productImage.Height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);
IntPtr ptr = imageData.Scan0;
byte[] byteData = new byte[m_nImageSize];
Marshal.Copy(outptr, byteData, 0, m_nImageSize);
Marshal.Copy(byteData, 0, ptr, m_nImageSize);
productImage.UnlockBits(imageData);
//解决"GDI+绘图发生一般性错误"
Bitmap bmap = new Bitmap(m_nImageWidth, m_nImageHeight, PixelFormat.Format24bppRgb);
Graphics draw = Graphics.FromImage(bmap);
float WidthRate = (float)Math.Round((decimal)352 / m_nImageWidth, 4);
float HeightRate = (float)Math.Round((decimal)288 / m_nImageHeight, 4);
draw.ScaleTransform(WidthRate, HeightRate);
draw.DrawImage(productImage, 0, 0);
pictureBox1.Image = (Image)bmap;
productImage.Save(path, ImageFormat.Jpeg); //解决"GDI+绘图发生一般性错误"
draw.Dispose();
productImage.Dispose();
}
我以前还用过这个。
System.Text.Encoding.Default.GetString(bytes)
using System.IO;MemoryStream ms=new MemoryStream(Byte[] b); 把那个byte[]数组传进去,然后
FileStream fs=new FileStream(路径 例如:"D:\image\myimage.jpg");
ms.writeto(fs);
ms.close();
fs.close();
可以了,我用过的,没问题