【问题标题】:Silverlight 4, image to byte arraySilverlight 4,图像到字节数组
【发布时间】:2010-09-16 08:48:34
【问题描述】:

假设我在数据库中有应用程序菜单及其图标图像(二进制数据)。我提取那些图标为 byte[] 类型的菜单。但是,如果没有设置图标,那么我想使用默认图标,它不是来自数据库,而是来自 xap(在 Resources 文件夹内)。为了显示来自数据库的图标,我使用 IConverter (byte[] to image),它基于以下问题的代码:

Silverlight 4.0: How to convert byte[] to image?

为了能够使用我的 byte[]-to-image IConverter,我还想将我的默认图标转换为来自 xap 的 byte[]。我怎么能这样做?以下问题建议使用 WriteableBitmap 类,但我不知道如何从 xap 源创建 WriteableBitMap:

Silverlight: image to byte[]

【问题讨论】:

    标签: silverlight image bytearray


    【解决方案1】:

    我可能会想念这里的问题(也许这里需要有关您的转换器的更多详细信息),但是如果您的转换器类只是根据其字节返回一个图像,您不能只测试数据库中的空字节,然后返回你的默认图片?

    public class MyConveter : IConverter {
        public Image ConvertImage(byte[] bytes) {
            if (bytes == null) return GetDefaultImage();
            else return ConverterBytesToImage(bytes);
        }
    }
    

    这样你只需返回一个图像作为方法声明,实现处理空字节的情况。

    这是在正确的轨道上吗?

    【讨论】:

    • +1:这是一个比我的建议更简洁的解决方案(并且巧妙地隐藏在幕后)。我将把它添加到我自己的技巧工具箱中:)
    • 谢谢,我喜欢抽象,并将其隐藏在不需要担心的层面:)
    • 谢谢,您的解决方案非常直观。
    【解决方案2】:

    由于您的默认图标是资源,因此您可以将其作为 ResourceStream 打开并以字节的形式读取。

    这能满足您的要求吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-28
      • 1970-01-01
      • 2012-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多