分配给Image.Source后,WPF内存中的图像无法呈现

时间:2015-03-16 22:48:02

标签: c# wpf image render

我一直在寻找几个小时来找到问题并找不到问题。我使用此函数将base64String转换为BitmapImage

public static BitmapImage Base64StringToBitmapImage(string base64String) {
        byte[] byteBuffer = Convert.FromBase64String(base64String);
        MemoryStream memoryStream = new MemoryStream(byteBuffer);
        memoryStream.Position = 0;

        BitmapImage bitmapImage = new BitmapImage();

        using (memoryStream) {
            bitmapImage.BeginInit();
            bitmapImage.CacheOption = BitmapCacheOption.OnLoad;
            bitmapImage.StreamSource = memoryStream;
            bitmapImage.EndInit();

            bitmapImage.Freeze();
        }
        memoryStream.Close();
        memoryStream = null;
        byteBuffer = null;

        return bitmapImage;
    }

然后将其分配给绑定到视图的ViewModel的属性:

ProcessImage = Base64StringToBitmapImage(_imageString);

MainWindow.xaml

<Image x:Name="PART_IMAGE" Width="auto" Height="auto" Source="{Binding ProcessImage}" />

我已经通过将图像背景设置为红色进行了一些测试,并且我注意到图像的大小调整应该是(1920x1080,因为它来自我的计算机的打印屏幕),但我无法做到看到渲染的图像......我已经完成了很多测试并在Google上搜索过,并且没有找到任何解决方案......任何人都认为这段代码有问题,或者知道是什么导致了问题?我真的没有选择:(

1 个答案:

答案 0 :(得分:0)

我发现了问题。在服务器端保存图像后,我发现打印屏幕图像不正确。我做了一些修改,一切正常。