簡體   English   中英

動態創建帶有一些文本和背景圖像的圖片為PNG

[英]Dynamically create a picture with some texts and background image as PNG

我有以下幾點:

  • 標題(文字)
  • 標語(文字)
  • 背景圖片(該圖片的網址)

我需要將這些動態地一起設置在圖像中,然后將其存儲為PNG文件。 所有這些都發生在Web服務中,該服務將某種流發送回去。

我希望能夠使用CSS設置樣式,因為在圖片中添加一些CSS效果會很好。 如果不可能的話,也可以。

到目前為止,我已經考慮過使用Bitmap類,然后動態地插入我的東西。 這絕對是一種可行的方法,但是我確實更喜歡一些更易於設計的方法,例如CSS。

首選的方式是什么? 有經驗嗎?

簽出System.Drawing.Graphics

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

然后,您可以調用Image.Savebmp.Save(...) )將圖像保存到磁盤,甚至保存到MemoryStream

Angelo Geels的答案將使您可以在代碼中創建動態位​​圖。 如果需要更大的靈活性,則可以改用SVG格式,如果絕對需要該格式,則可以將其呈現為PNG文件。

SVG是基於XML的圖像格式,您可以在其中定義視口和應繪制到其中的形狀。 它是基於矢量的,因此可以將圖像放大和縮小到任意大小。

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

如果您想使用SVG方法來實現靈活性,但仍需要輸出PNG,則可以使用SVG.Net庫讀取SVG文件,然后使用SvgDocument.Draw方法將圖像繪制到Bitmap對象上,然后可以作為PNG文件寫出來。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM