2010-10-18 102 views
0

我需要一個非常奇怪的東西,我承認。我希望你能幫助我。如何將silverlight圖像轉換爲非silverlight圖像?

我現在的情況(所有在一個解決方案VS2010):

  • 我有 用戶控件(基本上 類型的繪圖)
  • Silverlight的組裝我有一個WCF服務 提供圖像(在 網站項目託管)

不知何故,我需要:

  • 當有人請求RESTful服務(以上)針對某個特定大小的圖像
  • 創建,設置和渲染控制圖像(我做到了使用WriteableBitmap的)
  • 回報圖像該服務以某種方式< - 這是我的問題
  • 提供圖像的響應(我知道該怎麼做)

我試圖引用的Silverlight組件(非Silverlight的組裝)與幫手班級返回圖像。但那真是醜陋。

  • 有沒有辦法來託管Silverlight中的WCF服務?
  • 如果沒有,有沒有其他的辦法從Silverlight中獲取圖像 - >非Silverlight的服務類

感謝, 凱特

注: Silverlight控件是一個巨大的一個,並在另外三個項目(編輯器,查看器,Windows Phone 7應用程序)中使用,所以我不能真正移動它。此外,Silverlight的WPF類圖遠勝於非Silverlight。

+0

難道你不能把圖像保存爲一個PNG或不支持保存? – CodesInChaos 2010-10-18 18:49:30

+0

但是我如何從Silverlight幫助器類請求圖像?(我可以將它保存在Silverlight中,然後通過服務加載,但Silverlight如何知道該怎麼做?) – SmartK8 2010-10-18 18:50:31

回答

1

有很多方法可以做到這一點,我不是你想實現什麼完全清楚,但這樣的事情應該工作:

(1)WriteableBitmap.Pixels屬性應包含有問題的圖像的RGBA版本。

(2)使用FJCore將RGBA字節轉換爲JPEG格式。

(3)通過調用Web服務提交JPEG文件(包含在byte []數組中)。

(4)在Web服務上,將文件保存在其他非Silverlight應用程序可以訪問的適當位置。

會做你想做的事嗎?

+0

這只是另一種方式。服務必須以某種方式向Silverlight發出參數請求。 SL將根據發送的參數呈現圖像,並將其返回給服務。但如何提出請求WCF服務(非Silverlight程序集) - > Silverlight程序集 – SmartK8 2010-10-18 19:07:16

+0

Silverlight程序集是否在客戶端上運行?或者你是否嘗試在WCF服務中託管Silverlight程序集?聽起來像後者。如果是這樣的話,有兩種方法:如果組件足夠簡單,可以按照此處所述的方式引用組件:http://blogs.msdn.com/b/clrteam/archive/2009/12 /01/sharing-silverlight-assemblies-with-net-apps.aspx。或者,如果您有權訪問SL源,則可以按照此處所述在非SL項目中引用相關的SL源文件:http://msdn.microsoft.com/zh-cn/library/ff648215.aspx – 2010-10-18 19:41:39

+0

SL代碼嚴重依賴。它基本上是包含許多其他UserControl(也繪製)的UserControl(它自己繪製)。將它移動到非SL組件是我想要在這裏防止的。因爲它基本上是一個圖形例程的端口,質量很難達到。另外重要的是它的外觀必須完全一樣。我想(理想情況下)直接在Silverlight中託管該WCF服務。那可能嗎 ?然後在網站中引用它? – SmartK8 2010-10-18 19:49:00