代码之家  ›  专栏  ›  技术社区  ›  George Sealy

在Silverlight中获取.png像素数据

  •  2
  • George Sealy  · 技术社区  · 17 年前

    我们有一个Silverlight应用程序,需要加载多个.png文件。我们可以正常加载图像,但Silverlight不支持从Image类读取像素数据。

    有人能提出一个简单的解决方案来获取这些数据吗?我们目前最好的选择是第三方.png加载库,但我们很难找到合适的库。

    5 回复  |  直到 17 年前
        1
  •  3
  •   Jonas Follesø    17 年前

    Silverlight中没有用于进行基于像素的想象操作/生成的内置类。您需要实现自己的PNG编码器/解码器,该编码器/解码器在包含图像信息的字节数组上工作。Joe Stegman已经实现了一个这样的编码器,你应该看看。他在Silverlight上获得了很多关于“可编辑图像”的有用信息 http://blogs.msdn.com/jstegman/ 他做的事情包括对图像应用滤镜、生成曼陀罗等。

    本博客讨论了一个JPEG Silverilght编码器(FJCore),您可以使用它来调整和重新压缩照片客户端大小: http://fluxcapacity.net/2008/07/14/fjcore-to-the-rescue/

    另一个工具是“Fluxify”,它允许您使用Silverilght 2调整照片大小和上传照片。可以在以下网址找到 http://fluxtools.net/

    所以,是的,客户端图像处理肯定可以在Silverilght 2中完成。黑客快乐!

        2
  •  2
  •   Daniel Crenna    17 年前

    PNG解码很难找到。

    我为MSDN写了一篇文章,其中包括我从Joe Stegman、FluxCapacity和其他一些人那里拼凑出来的一些开源代码。它包括PNG解码(以及GIF、JPG和BMP),用于此线程中正在寻找它的人。

    http://www.microsoft.com/youshapeit/msdn/ExpertKnowledge/2008-10/InnovateWithSilverlight2.aspx

    如果你不喜欢我为Silverlight实现它,那么你可以直接转到我为PNG解码修改的内容: http://sourceforge.net/projects/pr2/

    干杯

    更新:看起来他们不再在网站上提供源代码,所以我在这里重新发布了内容: http://dimebrain.com/2009/01/innovate-with-silverlight-2-article-code-available.html

        3
  •  0
  •   George Sealy    17 年前

    谢谢-我看过乔·斯蒂格曼的博客。它非常方便,但他没有的解码器是PNG解码器。我们使用PNG是因为我们需要透明度。fluxtools链接似乎也断了。

    我仍在寻找一个可以放入Silverlight的PNG解码器(未成功)。

        4
  •  0
  •   sep332    17 年前

    一种可能更容易的选择(取决于情况)是分别保存颜色数据和透明度数据,然后在加载图像后以编程方式将透明度应用于图像。这样,您就可以将图像保存为表示alpha通道的8位gif,再加上jpg或bmp或其他颜色数据。

        5
  •  0
  •   chris chris    17 年前

    Dimebran-您提供的msdn链接没有指向源代码的有效链接-您是否有指向有效源代码的链接?