1

我正在尝试从存储中读取图像 (.png/jpg) 并在我的 Windows Phone 8 应用程序上获取像素值:

    private static BitmapImage LoadBitmap(string iFilename)
    {
        var imgUri = new Uri(iFilename, UriKind.Relative);
        var image = new BitmapImage { CreateOptions = BitmapCreateOptions.None, UriSource = imgUri };

        return image;
    }

    public static string GetColorAttribute(string iFilename)
    {
        // Get Bitmap Image
        var image = LoadBitmap(iFilename);
        var wbmp = new WriteableBitmap(image);
    }

我在执行时遇到异常:

var wbmp = new WriteableBitmap(image);

{System.Reflection.TargetInvocationException:调用的目标已引发异常。---> System.TypeInitializationException:“MyProject”的类型初始化程序引发了异常。---> System.NullReferenceException:对象引用未设置为对象的实例。

是否有在 Windows Phone 8 上处理图像的示例?

4

1 回答 1

2

您应该使用该类的SetSource方法BitmapImage

private static WriteableBitmap LoadBitmap(string iFilename)
{
    using (var stream = Application.GetResourceStream(new Uri(iFilename, UriKind.Relative)).Stream)
    {
        var bmpi = new BitmapImage();
        bmpi.SetSource(stream);
        bmpi.CreateOptions = BitmapCreateOptions.None;
        WriteableBitmap bmp = new WriteableBitmap(bmpi);
        bmpi.UriSource = null;
        return bmp;
    }
}

public static void GetColorAttribute(string iFilename)
{
    // Get Bitmap Image
    var wbmp = LoadBitmap(iFilename);
}

这是一篇解释如何在 Windows Phone 上加载图像的文章(这篇文章是为 Windows Phone 7 编写的,但它没有随 WP8 更改):Windows Phone 的图像提示

于 2013-08-13T20:05:35.333 回答