使用C#做了一个画图功能,画完图之后把图片保存到byte[]数组中,然后通过System.Convert.ToBase64String(byteimage, 0, byteimage.Length);//byteimage为byte[]数组。在保存到数据库里(sqlserver,相应的图片字段是text类型的)。而且也可以通过Convert.FromBase64String(model.Image)在程序中显示出图片。
问题是在水晶报表打印的时候,我转换成BMP格式传给水晶报表,图片就是出不理。
我试着读取本地磁盘的BMP格式图片(画板画的图片),就可以在水晶报表中显示。
(水晶报表只能显示BMP和JPEG格式的图片)
最终感觉就是我程序保存的图片有问题,在报表中一个都显示不出来呀。急死了,谁能帮帮我,我分不多,十分感谢那!存储报表C#图片bmp

解决方案 »

  1.   

    数据库不是有Image类型和byte[]类型吗?,你干嘛没事转成Base64String?无故损耗性能还降低可移植性
      

  2.   

    在绑定数据之前,你要把图片字段转换为byte[]
      

  3.   

    我转换了啊,程序中可以实现图片保存与显示,就是在水晶报表中不能显示出来。我用text 是怕图片大了放不下
      

  4.   

    顺便弱弱的问一下程序中的byte[] 对应数据库中的那个类型呀?
      

  5.   

    图片的话一般是用image二进制存的
      

  6.   

    图片的话一般是用image二进制存的数据库换成image类型存储 还是出不来呀 ..
      

  7.   

    对应的是binary和varbinary,前者是定长的验证一下你转换出来的byte[],将其输出到一个页面pic.aspx
    Response.ContentType = "image/jpeg";
    Response.BinaryWrite(bytes);
    Response.End();
    浏览页面,图片能正常显示出来,就说明数据没有问题
      

  8.   

    对应的是binary和varbinary,前者是定长的验证一下你转换出来的byte[],将其输出到一个页面pic.aspx
    Response.ContentType = "image/jpeg";
    Response.BinaryWrite(bytes);
    Response.End();
    浏览页面,图片能正常显示出来,就说明数据没有问题图片可以保存,也可以从数据库中读出。就是水晶报表这边不显示,我上传图片,懂得帮帮忙吧