2010-10-18 60 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