我有以下幾點:動態創建一些文本和背景圖像的圖片作爲PNG
- 一個標題(文本)
- 標語(文本)
- 背景圖像(網址到該圖像)
我需要在圖像中一起動態設置它們,然後將其存儲爲PNG文件。所有這些都發生在一個發送某種流的Web服務中。
我很想用CSS來設計它,因爲它可以很好地爲圖片添加一些CSS效果。如果這是不可能的,那也是好的。
到目前爲止,我曾考慮過使用Bitmap
類,然後動態插入我的東西。這絕對是一種方式,但我真的更喜歡更像設計一樣的CSS方式。
什麼是最好的方式來做到這一點?任何經驗?
我有以下幾點:動態創建一些文本和背景圖像的圖片作爲PNG
我需要在圖像中一起動態設置它們,然後將其存儲爲PNG文件。所有這些都發生在一個發送某種流的Web服務中。
我很想用CSS來設計它,因爲它可以很好地爲圖片添加一些CSS效果。如果這是不可能的,那也是好的。
到目前爲止,我曾考慮過使用Bitmap
類,然後動態插入我的東西。這絕對是一種方式,但我真的更喜歡更像設計一樣的CSS方式。
什麼是最好的方式來做到這一點?任何經驗?
Bitmap bmp = new Bitmap(500, 500);
using (Graphics g = Graphics.FromImage(bmp)) {
g.Clear(Color.Black);
// ...
}
然後,您可以撥打Image.Save
(bmp.Save(...)
)將圖像保存到磁盤,甚至到MemoryStream
。
Angelo Geels的答案可以讓你在代碼中創建一個動態位圖。如果您需要更多的靈活性,那麼您可能需要使用SVG格式,如果您絕對需要該格式,可能會將其呈現爲PNG文件。
SVG是一種基於XML的圖像格式,您可以在其中定義應該繪製到其中的視口和形狀。它是基於矢量的,因此圖像可以放大和縮小到任何尺寸。
編寫ASP.Net Http處理程序應該很容易,該處理程序根據用戶輸入輸出帶有一些動態內容的SVG xml文件。更簡單的選擇是提供設計人員創建的靜態SVG文件,但最好還是提供靜態PNG文件。
如果你想使用SVG方法的靈活性,但仍然需要輸出PNG的,那麼你可以使用SVG.Net library來讀取SVG文件,然後使用SvgDocument.Draw方法將圖像繪製到一個Bitmap對象,該對象可以然後寫出爲PNG文件。
如何創建用戶控件。你可以公開的屬性公開的圖像URL和創建文字,然後將div保存爲圖像http://www.hiqpdf.com/demo/ConvertHtmlToImage.aspx ...我還沒有嘗試過,只是一個建議 –