Image 控件只能通過 URL 顯示圖片,不能通過二進制數(shù)據(jù)加載

成都創(chuàng)新互聯(lián)公司企業(yè)建站,十多年網(wǎng)站建設(shè)經(jīng)驗,專注于網(wǎng)站建設(shè)技術(shù),精于網(wǎng)頁設(shè)計,有多年建站和網(wǎng)站代運營經(jīng)驗,設(shè)計師為客戶打造網(wǎng)絡(luò)企業(yè)風(fēng)格,提供周到的建站售前咨詢和貼心的售后服務(wù)。對于成都做網(wǎng)站、網(wǎng)站設(shè)計中不同領(lǐng)域進行深入了解和探索,創(chuàng)新互聯(lián)在網(wǎng)站建設(shè)中充分了解客戶行業(yè)的需求,以靈動的思維在網(wǎng)頁中充分展現(xiàn),通過對客戶行業(yè)精準市場調(diào)研,為客戶提供的解決方案。
綁定數(shù)據(jù)源的替代解決方案:
第一步:
另外做個 aspx 頁面,如 showimage.aspx 文件,該頁面通過傳遞過來的查詢字符串參數(shù),而從數(shù)據(jù)庫中加載指定的圖片:
int id;
int.TryParse(this.Request.QueryString["ID"], out id);
if(id != 0)
{
// 加載數(shù)據(jù)庫圖片的代碼
//.......
//.......
Response.ContentType = "image/Gif";
Response.BinaryWrite(已經(jīng)讀入btye[]類型變量中的圖像);
}
最后一步:
你在需要綁定數(shù)據(jù)源的頁面,綁定記錄的 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就是,現(xiàn)在兩種類型轉(zhuǎn)換是做不到的,image類型是SQL Server2005以前使用的,雖然圖像數(shù)據(jù)類型也包含在SQL Server 2005和2008中,但在這些版本下不應(yīng)當(dāng)使用這種類型。微軟稱保留圖像數(shù)據(jù)類型是未來向下兼容之需,在將來某個時候就會將其舍棄。
方案一:再增加兩個列,1,繪圖結(jié)果的URL;2,最后一次繪圖時間。網(wǎng)頁上通過編號檢索圖像URL,檢索不到則實時繪圖。后臺程序可以利用空閑時間輸出到繪圖結(jié)果并保存URL。
方案二:數(shù)據(jù)量較少時,可以直接將繪圖結(jié)果保存早數(shù)據(jù)庫,網(wǎng)站直接讀取圖像數(shù)據(jù)流。
網(wǎng)站獲取DB中的數(shù)據(jù)請參考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的數(shù)據(jù)表中建個image的字段,用程序(看你熟悉哪個了)把文件以2進制的形式存取在image里,image適合于二進制文件,包括:Word文檔,Excel文檔,圖片,音樂等不分格式,我以前用pb做過的一個人事管理里用到過照片的數(shù)據(jù)存取,如果你需要的話,我給你找找
本文標題:sqlserver圖像,sqlserver圖形界面
標題來源:http://chinadenli.net/article48/dsgjohp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、網(wǎng)站排名、電子商務(wù)、全網(wǎng)營銷推廣、靜態(tài)網(wǎng)站、云服務(wù)器
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)