2012-03-19 49 views
3

這個問題更多的是指導,不是真正解決我的問題:角色創造套

我需要用一個巨大的一套分類的圖像,使一個頭像製作在C#

在概念上非常直接,但我從來沒有在代碼中操縱過圖像,所以我需要一些提示和指針。

如何設想它的工作是將有2份到系統:

  1. 使用HTML+CSS,以允許用戶選擇和位置的多個圖像
  2. 保存動作發送前端這些圖像/層和他們,然後寫出來作爲一個拼合的圖像文件

現在服務器的位置,這是我的假設這個系統應該如何工作。如果沒有,提示/指針將不勝感激。

弘揚假設:

我有一個模糊的感覺,我將需要使用Canvas創建客戶端上的圖像的第一部分。雖然這帶來了瀏覽器支持的問題。 Canvas是否是這裏的解決方案,或者我會更好使用普通HTML4+CSS2。回溯一下,Canvas甚至可以給它增加任何好處嗎?我在Google的反饋/問題報告系統中看到了Canvas的強大功能,他們使用這個元素來做客戶端截圖!

對於第二部分,我沒有線索。當我問這個問題時,我正在閱讀/研究關於C#中的圖像創建,並且出現了像GDI+Image Library這樣的行話。

相關的問題:

的Gravatar或PHP都沒有選擇!

PS:我希望在我的研究/檢討結果,並通過多所社區提供的任何援助編輯這個問題,但我相信這是不是這樣的討論。由於我對SO的研究沒有提供太多的線索,因此我相信我們可以將此作爲社區Wiki,並將最佳答案/建議合併爲一篇文章。謝謝。

回答

1

您可以使用簡單的ASP/HTML與回發來顯示基於他們從組合框和其他控件中選擇不同選項的圖像。

回帖仍然會爲他們的瀏覽器創建一個短暫的延遲,以便用新圖像重新下載頁面。一個選擇是你可以使用AJAX下載新的圖像,而無需重新加載整個頁面。這可能會提供最好的體驗,而不需要Flash/Silverlight。你會有多少種不同的圖像組合?您可以預先計算所有可能的組合並存儲它們。這將需要更多的存儲空間,但處理能力較低,回傳速度稍快。

如果要生成每個請求的圖像,你會畫上,使用下列方法的位圖的每個圖像:

Bitmap avatarBitmap = new Bitmap(AvatarWidth, AvatarHeight); 
using (Graphics g = Graphics.FromImage(avatarBitmap)) 
{ 
    foreach (Bitmap bitmap in ListOfImagesToDraw) 
    { 
     g.DrawImage(bitmap, 0, 0); 
    } 
} 
avatarBitmap.Save(fileName, ImageFormat.Png); 

這就要求每一個項目是相同大小的位圖內部,他們可以排隊。例如,如果您在Photoshop中製作所有圖像,則可以讓每個項目都是具有透明背景的相同圖像的圖層。然後,您可以執行批量保存以將每個圖層保存到自己的文件中。

如果您需要定義Z順序,以便某些圖像在其他圖像上繪製(例如,繪製在頭頂而不是後方的太陽鏡),只需確保圖像在您的正確順序ListOfImagesToDraw數組。該數組將由回發中的信息生成。

+0

感謝您的建議......讓我給點想法:) – bPratik 2012-03-23 14:45:55