百度上也有!二进制转换图片!路径,在SRC设置!

解决方案 »

  1.   

    看这个byte的长度,没有路径会超过300个字符。
      

  2.   

    因为asp.net不像form一样有picturebox控件,image后台只能定义imageURL,或者说还有其他方法,求赐教
      

  3.   

    那么我该怎么在imageurl中将这一组byte数据识别成图片呢?
      

  4.   

    看你是怎么写进去的了,以什么格式写的。你的代码假设了它是jpg格式的。
      

  5.   

    看你是怎么写进去的了,以什么格式写的。你的代码假设了它是jpg格式的。
    在录入时的图片转换代码是这样的:
       FileStream file = new FileStream(imgPath, FileMode.Open, FileAccess.Read);
                byte[] byteData = new byte[file.Length];
                file.Read(byteData, 0, byteData.Length);
                file.Close();
                return byteData;或许这么写是错的?
      

  6.   


    哥,轻轻的告诉你,问题在存的数据时。这图上的那13个byte就是转成asc就是:"System.Bye[]"
    也就是说,你本来是要把图存进去,结果只是写了几个字符进去。
      

  7.   

    就是说我在表里提取出image数据类型转换成byte时出错了?
      

  8.   

    就是说我在表里提取出image数据类型转换成byte时出错了?
    你在存的时候就已经错了
      

  9.   

    图片和成byte数组相互转换,无非就是流,你把Stream搞懂了也就差不多了。FileStream啊或者MemoryStream啊。都会有Write或者Read的方法,这方法涉及的传参也都包含你说的二进制的实现,主要就是byte数组
      

  10.   

    目前发现,实现方法我选择的是将图片存储在站点的文件夹下,但是将路径转换二进制存储在数据库,调用时先将路径转换然后匹配站点中的图片文件并显示,思路就是这样,然后有一点不明白,就是在imghelper.aspx.cs中,pageload最终代码如下:
     Byte[] byteImg = (Byte[])data_temp.Tables[0].Rows[0][2];//把数据库中图片的二进制数据转换一个byte数组
                       Stream stream = new MemoryStream(byteImg);
                       System.Drawing.Image img = (System.Drawing.Bitmap)System.Drawing.Image.FromStream(stream, false); //转换成Bitmap  
                        Response.Buffer = false;
                        Response.ContentType = "image/jpg";
                      //  Response.AddHeader("Content-Disposition", "attachment;filename=photo.jpg");//照片名称叫photo.jpg
                        Response.BinaryWrite(byteImg);//写入二进制流
                        Response.End();
    respose.BinaryWrite输出二进制流,我如何在另一个后台cs页面中接收?  Imagete.ImageUrl = "ImgHelper.aspx?employeeId=" + ID; 这个语句是对的吗?
      

  11.   

    参数是图片路径:返回Byte[]类型: 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;
    回归到这里,按照这种格式将图片的存储路径转换成byte[]数组,存储到服务器上,然后如何将它转换成字符串显示?
      

  12.   

    好吧,楼楼来结贴了,大家是不是很高兴呢,呵呵,总结一下问题吧,网上的代码千篇一律,但是都忽略了一件事,那就是byte类型数组上传时的写法。必须是这么写: string constr = "INSERT INTO photo([driverID],(photovalue)VALUES(@driverid,@photovalue)";
             SqlCommand cmd = new SqlCommand(constr,sqon);
             cmd.Parameters.Add("@driverid", paras[0]);
             cmd.Parameters.Add("@photovalue", paras[1]);  //因使用了byte类型数组上传至数据库,故而要使用这种写法而不能使用传统的insert into ** [] [] [] [] values('"+**+"')
             int getquery =   cmd.ExecuteNonQuery();