2013-01-15 80 views
1

我正在C#中開發一個.NET 3.5 WinForms項目,我希望直接從控件中獲取最佳方法來呈現圖像的最佳方法。一個內存中源?
內存中,我的意思是我有一個圖像集合在Base64編碼的字符串格式,我希望將它們呈現在WebBrowser控件的嵌入式頁面中。如何在WinForms WebBrowser控件上加載內存中的圖像

我曾希望使用嵌入式Data URI選項示例,但是這種方法是limited圖像0​​32KB。

我希望有可能將其轉換爲System.Drawing.Image實例,並以某種方式在src html標記中引用此圖像,如下所示:<img src="<insert reference here?>" </img>。這樣的技術是可能的嗎?

如果不可能做到這一點,那麼我想知道在Windows臨時目錄中創建文件的可行性和參考嗎?

回答

1

另一種方法是設置一個web服務器並通過localhost <img src='http://localhost/img.jpg'>加載圖像。這可以防止在磁盤上創建臨時圖像。

如果你不想處理Web服務器,簡單的圖像拼貼結合提到的數據URI參數將工作。一個單一的瓷磚可以通過以下方式獲得:

Rectangle region = new Rectangle(x, y, tileWidth, tileHeight); 
Bitmap tile = sourceBitmap.Clone(region, sourceBitmap.Clone.PixelFormat); 

你只是重複區塊生成用於Rectangle region不同的參數,直到你已經覆蓋了完整的源圖像。您可以嘗試使用哪個tileWidthtileHeight適合導致數據大小低於32kB的圖塊。

+1

感謝您的建議,但是我的應用程序可以部署到第三方客戶端,並且它不是創建WebServer的選項。您能否詳細說明圖像拼貼方法 - 聽起來有趣嗎? – fin

+0

檢查我所做的修改。這可能會讓你去。 – alex