2013-08-05 45 views
0

我有以下幾點:動態創建一些文本和背景圖像的圖片作爲PNG

  • 一個標題(文本)
  • 標語(文本)
  • 背景圖像(網址到該圖像)

我需要在圖像中一起動態設置它們,然後將其存儲爲PNG文件。所有這些都發生在一個發送某種流的Web服務中。

我很想用CSS來設計它,因爲它可以很好地爲圖片添加一些CSS效果。如果這是不可能的,那也是好的。

到目前爲止,我曾考慮過使用Bitmap類,然後動態插入我的東西。這絕對是一種方式,但我真的更喜歡更像設計一樣的CSS方式。

什麼是最好的方式來做到這一點?任何經驗?

+0

如何創建用戶控件。你可以公開的屬性公開的圖像URL和創建文字,然後將div保存爲圖像http://www.hiqpdf.com/demo/ConvertHtmlToImage.aspx ...我還沒有嘗試過,只是一個建議 –

回答

2

退房System.Drawing.Graphics

Bitmap bmp = new Bitmap(500, 500); 
using (Graphics g = Graphics.FromImage(bmp)) { 
    g.Clear(Color.Black); 
    // ... 
} 

然後,您可以撥打Image.Savebmp.Save(...))將圖像保存到磁盤,甚至到MemoryStream

1

Angelo Geels的答案可以讓你在代碼中創建一個動態位圖。如果您需要更多的靈活性,那麼您可能需要使用SVG格式,如果您絕對需要該格式,可能會將其呈現爲PNG文件。

SVG是一種基於XML的圖像格式,您可以在其中定義應該繪製到其中的視口和形狀。它是基於矢量的,因此圖像可以放大和縮小到任何尺寸。

編寫ASP.Net Http處理程序應該很容易,該處理程序根據用戶輸入輸出帶有一些動態內容的SVG xml文件。更簡單的選擇是提供設計人員創建的靜態SVG文件,但最好還是提供靜態PNG文件。

如果你想使用SVG方法的靈活性,但仍然需要輸出PNG的,那麼你可以使用SVG.Net library來讀取SVG文件,然後使用SvgDocument.Draw方法將圖像繪製到一個Bitmap對象,該對象可以然後寫出爲PNG文件。