对于以二进制形式存储在数据库中的图片,以前都是采用在单独的aspx页面Response.BinaryWrite写出、Image控件设置ImageUrl属性调用的方法来显示,无意中看到Astron Digital的BinaryImage控件后发现完全没有必要单独弄个aspx页面,可惜他那个控件是要收费的,于是研究了一下他的代码,写了这么一个实现同样功能的开源控件 :)
具体实现细节就不说了,感兴趣的把源码拿去看看就明白了,简要说一下BinaryImage控件的主要属性:
CssClass 定义图片格式的css伪类,自WebControl继承
Width 图片宽度,自WebControl继承
Height 图片高度,自WebControl继承
Binary 图片二进制数据,从数据库中读出来赋值给它即可
FixImageSrc 固定图片地址
FixIsDefault 是否以固定图片为首选项:true优先显示固定图片,false则优先显示二进制图片
ImageAlign 图片对齐方式
在演示页面中共放置了三个BinaryImage控件:BinaryImage1,BinaryImage2,BinaryImage3,其中BinaryImage1未作任何设置,BinaryImage2设置了FixImageSrc属性,BinaryImage3在Page_Load中设置了Binary属性,最终显示效果如图BinaryImage_demoView所示:
补充:可以把这个控件放到gridview的模板列中用以显示该条记录包含的存储在数据库中的图片数据。