2

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

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

4

5 回答 5

3

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

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

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

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

于 2008-11-18T02:12:21.113 回答
2

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

于 2008-11-19T00:48:02.080 回答
0

谢谢 - 我看过 Joe Stegman 的博客。很方便,但是他没有的解码器是PNG的。我们正在使用 PNG,因为我们需要透明度。Fluxtools 链接似乎也被破坏了。

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

于 2008-11-18T20:56:10.783 回答
0

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

于 2008-11-18T21:11:29.973 回答
0

Dimebrain - 你提供的那个 msdn 链接没有指向源代码的有效链接——你有没有可能链接到有效的源代码?

于 2009-01-21T01:43:00.813 回答