客户端图像处理

moo*_*ogs 32 flash silverlight html5 ria image-processing

我们正在构建一个需要大量图像处理的基于Web的应用程序.我们希望这个处理负载尽可能地在客户端上,我们希望尽可能多地支持平台(甚至是移动设备).

是的,我知道,一厢情愿

这是信息:

  1. 图像处理是来自某些数据的光栅化.想像从PDF文件创建PNG图像.

  2. 我们没有很多服务器电源.所以客户端处理是必须的.

所以,我们正在考虑:

  1. Flash - 最普遍,但从我读到的开发工具乏善可陈.(目前还没有iPhone/iPad支持).

  2. Silverlight - 允许我们使用.NET CLR,因此是一个很大的++(很多代码都在.NET中).但大多数手机都不支持(未来传闻的Android支持)

  3. HTML5 + Javascript - 可能是最"便携"的选项.问题是必须在Javascript中重写所有图像处理代码.

任何可能有帮助的想法或架构?澄清:我不需要进一步了解哪些库可用于Silverlight和Javascript.我的困境是

  • 选择Silverlight意味着不支持大多数手机
  • 选择Flash意味着我们必须重新开发大部分代码而不支持iPhone/iPad
  • HTML5 + Javascript我们必须重新开发大部分代码,并且尚未在所有浏览器中完全支持
  • 选择两个(Silverlight + Flash)将太昂贵

我可能会缺少任何开箱即用或明智的想法/替代方案?

Cra*_*rze 28

这是软件架构师一直遇到的问题.按照惯例,没有理想的解决方案.您需要选择最适合您业务的折衷方案.

总结一下您的问题,您的大多数图像处理软件都是用.NET编写的.您希望在移动设备上运行客户端,但移动设备上的.NET渗透率有限.具有更高渗透率的替代方案(例如Flash)将要求您重新编写代码,这是您无法承担的.此外,iPhone/iPad不支持这些替代方案.

您理想的是在大多数现有平台(包括iPhone/iPad)上运行所有.NET代码的方法.我可以肯定地说,目前还没有这样的解决方案 - 没有你忽略的"银弹"答案.

那你需要妥协什么?在我看来,即使你在闪存中重新开发,你仍然会错过一个主要市场(iPhone).无论如何,重新开发软件的成本非常高.

这是您问题的最佳解决方案 - 您需要在"客户端执行"约束上妥协.如果您执行服务器端,则可以保留现有代码,并且还可以部署到几乎所有移动客户端,包括iPhone.

您说您的服务器功率有限,但与软件开发成本相比,服务器处理能力便宜.实际上,将服务器组件外包并且仅为您使用的内容付费并不是那么昂贵.最有可能的是,您的应用程序只有较低的渗透率才能开始.随着业务的增长,您将能够负担得起升级服务器容量.

我相信这是解决您问题的最佳方案.

  • +1,是的,也看到了我的答案.硬件很便宜,程序员不是. (3认同)

小智 7

在Amazon E2C,Azure或Google上托管您的图像处理.IIRC E2C已经打包了很多常见的图像处理问题,并且随时可以使用.

在将代码共享为Web服务方面,Azure可能更为熟悉

您只需支付CPU周期和传输/存储等费用