Byte[]与图片互相转换,保存到本地

//图片路径转换为byte[]
public byte[] GetPictureData(string imagePath)
{
FileStream fs = new FileStream(imagePath, FileMode.Open);
byte[] byteData = new byte[fs.Length];
fs.Read(byteData, 0, byteData.Length);
fs.Close();
return byteData;
}
//byte[]格式转为图片
public static Image BytesToImage(byte[] bytes)
{
MemoryStream ms = new MemoryStream(bytes);
Image img = Image.FromStream(ms);
return img;
}
示例:
string picpath = Server.MapPath("~/images/hn.jpg");
byte[] photo = GetPictureData(picpath); //调用方法,转换为byte[]
Image image1 = BytesToImage(photo); //byte[]转换为图片
//保存图片到本地 方法一
System.Drawing.Bitmap image = new System.Drawing.Bitmap(image1);
string imgname = DateTime.Now.ToString("yyyyMMddhhmmss") + ".jpg";
string path = "~/images/" + imgname;
image.Save(Server.MapPath(path));
this.img1.ImageUrl = path;
//保存图片到本地 方法二
string path = Server.MapPath("~/images").TrimEnd('\\') + @"\";//转为物理路径
System.IO.FileStream fs = new System.IO.FileStream(path + "123.jpg", System.IO.FileMode.Create);//注意123.jpg为你的图片名称

System.IO.BinaryWriter bw = new System.IO.BinaryWriter(fs);
bw.Write(photo, 0, photo.Length);
fs.Flush();//数据写入图片文件
fs.Close();

示例:从数据库读取数据保存到本地照片
DataTable dt = pager.GetTableView("tmp", " 1=1 ");
for (int i = 0; i < dt.Rows.Count; i++)
{
byte[] photo = new byte[0];
string imgname = "";
if (!string.IsNullOrEmpty(dt.Rows[i]["photo"].ToString()))
{
photo = (byte[])dt.Rows[i]["photo"];//读取第一个图片的位流
int ArraySize = photo.GetUpperBound(0);//获得数据库中存储的位流数组的维度上限,用作读取流的上限
imgname = DateTime.Now.ToString("yyyyMMddhhmmss") + i + ".jpg";
//string path = Server.MapPath("~/images").TrimEnd('\\') + @"\";//项目路径转为物理路径
string path = "F:\\pic\\".TrimEnd('\\') + @"\";//物理路径
System.IO.FileStream fs = new System.IO.FileStream(path + imgname, System.IO.FileMode.Create);//注意123.jpg为你的图片名称
System.IO.BinaryWriter bw = new System.IO.BinaryWriter(fs);
bw.Write(photo, 0, photo.Length);
fs.Flush();//数据写入图片文件
fs.Close();
string sql = "insert into tmpxx(aab004,aac003,aae135,photo) values ('" + dt.Rows[i]["aab004"].ToString() + "','" + dt.Rows[i]["aac003"].ToString() + "','" + dt.Rows[i]["aae135"].ToString() + "','" + "/UploadFiles/UserIcon/2016/1025/" + imgname + "')";
int m = pager.RunSql(sql);
}
else {
string sql = "insert into tmpxx(aab004,aac003,aae135,photo) values ('" + dt.Rows[i]["aab004"].ToString() + "','" + dt.Rows[i]["aac003"].ToString() + "','" + dt.Rows[i]["aae135"].ToString() + "','')";
int m = pager.RunSql(sql);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值