Image 控件只能通过 URL 显示图片,不能通过二进制数据加载
成都创新互联公司企业建站,十多年网站建设经验,专注于网站建设技术,精于网页设计,有多年建站和网站代运营经验,设计师为客户打造网络企业风格,提供周到的建站售前咨询和贴心的售后服务。对于成都做网站、网站设计中不同领域进行深入了解和探索,创新互联在网站建设中充分了解客户行业的需求,以灵动的思维在网页中充分展现,通过对客户行业精准市场调研,为客户提供的解决方案。
绑定数据源的替代解决方案:
第一步:
另外做个 aspx 页面,如 showimage.aspx 文件,该页面通过传递过来的查询字符串参数,而从数据库中加载指定的图片:
int id;
int.TryParse(this.Request.QueryString["ID"], out id);
if(id != 0)
{
// 加载数据库图片的代码
//.......
//.......
Response.ContentType = "image/Gif";
Response.BinaryWrite(已经读入btye[]类型变量中的图像);
}
最后一步:
你在需要绑定数据源的页面,绑定记录的 ID 到 Image 控件的 ImageUrl="showimage.aspx?id=%# DataBinder.Eval(Container.DataItem, "id") %" 就可以了。
delphi 的图像缩放示例代码如下:
//将图片缩放至指定大小
procedure SizeBmp(const Source, Dest: string; const x, y: integer);
var
aBmp, bBmp: tbitmap;
scalex, scaley: real;
begin
aBmp := TBitmap.Create;
bBmp := TBitmap.Create;
try
aBmp.LoadFromFile(Source);
scaley := aBmp.Height / y;
scalex := aBmp.Width / x;
bBmp.Width := round(aBmp.Width / scalex);
bBmp.Height := round(aBmp.Height / scaley);
bBmp.PixelFormat := pfDevice;
SetStretchBltMode(bBmp.Canvas.Handle, COLORONCOLOR);
StretchBlt(bBmp.Canvas.Handle, 0, 0, bBmp.Width, bBmp.Height,
aBmp.Canvas.Handle, 0, 0, aBmp.Width, aBmp.Height, srccopy);
bBmp.SaveToFile(Dest);
finally
aBmp.Free;
bBmp.Free;
end;
end;
procedure TForm1.btn1Click(Sender: TObject);
begin
SizeBmp('e:\1112.bmp','e:\1112_small.bmp',640,480);
end;
这个好像做不到吧,既然都是二进制文件,存储的时候就定义字段类型为BLOB就是,现在两种类型转换是做不到的,image类型是SQL Server2005以前使用的,虽然图像数据类型也包含在SQL Server 2005和2008中,但在这些版本下不应当使用这种类型。微软称保留图像数据类型是未来向下兼容之需,在将来某个时候就会将其舍弃。
方案一:再增加两个列,1,绘图结果的URL;2,最后一次绘图时间。网页上通过编号检索图像URL,检索不到则实时绘图。后台程序可以利用空闲时间输出到绘图结果并保存URL。
方案二:数据量较少时,可以直接将绘图结果保存早数据库,网站直接读取图像数据流。
网站获取DB中的数据请参考SQL编程,绘图代码请参考:
Image img = new Bitmap(640, 480);
Graphics g = Graphics.FromImage(img);
g.Clear(Color.Black);
for (int i = 0; i 480;i++ )
{
g.DrawRectangle(Pens.Green, i, i, 1, 1);
}
g.Dispose();
g = this.CreateGraphics();
g.DrawImage(img,new Point(0,0));
g.Dispose();
对dicom不熟悉,是一种图象文件么?,如果是的话给你个思路,在sqlserver的数据表中建个image的字段,用程序(看你熟悉哪个了)把文件以2进制的形式存取在image里,image适合于二进制文件,包括:Word文档,Excel文档,图片,音乐等不分格式,我以前用pb做过的一个人事管理里用到过照片的数据存取,如果你需要的话,我给你找找