Windows phone 7 如何在windows phone中合并两个图像并将其保存到独立存储

Windows phone 7 如何在windows phone中合并两个图像并将其保存到独立存储,windows-phone-7,windows-phone,Windows Phone 7,Windows Phone,我想合并两个图像,一个图像是300x300,另一个是100x100,首先我创建了一个画布,然后我创建了两个图像,我已将它们添加到画布中,图像添加到画布中,画布添加到内容面板中,然后我创建了一个writeablebitmap并渲染画布,并创建了一个方法savejpeg,该方法将图像保存到isolatedstorage,但独立存储并没有显示整个图像,而是保存了一个黑屏 首先,我通过代码设置画布的高度、宽度和背景色创建了一个画布,然后我以编程方式创建了两个图像,并将它们添加到画布中,然后画布被添加到c

我想合并两个图像,一个图像是300x300,另一个是100x100,首先我创建了一个画布,然后我创建了两个图像,我已将它们添加到画布中,图像添加到画布中,画布添加到内容面板中,然后我创建了一个
writeablebitmap
并渲染画布,并创建了一个方法
savejpeg
,该方法将图像保存到
isolatedstorage
,但独立存储并没有显示整个图像,而是保存了一个黑屏

首先,我通过代码设置画布的高度、宽度和背景色创建了一个画布,然后我以编程方式创建了两个图像,并将它们添加到画布中,然后画布被添加到
contentpanel

我的代码是:

   public void CreateImage()
    {

        Canvas canvas = new Canvas();
        canvas.Height = 400;
        canvas.Width = 400;
        canvas.Background = new SolidColorBrush(Colors.Red);

        Image img1 = new Image();
        img1.Source = (ImageSource)new ImageSourceConverter().ConvertFromString("Image/Desert.jpg");
        img1.Height = 300;
        img1.Width = 300;
        img1.Margin = new Thickness(0, 10, 0, 0);

        Image img2 = new Image();
        img2.Source = (ImageSource)new ImageSourceConverter().ConvertFromString("Image/Jellyfish.jpg");
        img2.Height = 50;
        img2.Width = 50;
        img2.Margin=new Thickness(0,10,300,0);


        canvas.Children.Add(img1);
        canvas.Children.Add(img2);
        ContentPanel.Children.Add(canvas);

        WriteableBitmap wb = new WriteableBitmap(400, 400);
        wb.Render(canvas, new MatrixTransform());
        MemoryStream ms = new MemoryStream();


        wb.SaveJpeg(ms,400,400,0,100);

        using (var isoFileStream = new IsolatedStorageFileStream("myPicture.jpg", FileMode.OpenOrCreate, IsolatedStorageFile.GetUserStoreForApplication()))
        {
            wb.SaveJpeg(isoFileStream, 400, 400, 0, 100);
        }

    }
当我保存图像时,我在隔离存储中得到一个黑屏。
如何在画布上保存这两个图像?

请检查您是否正在获取图像源。如果你得到了图像;尝试此方法从控件获取快照并将其保存到Iso存储

 http://stackoverflow.com/questions/13837148/how-can-i-take-a-screenshot-full/13990649#13990649

请检查您是否正在获取图像或未获取图像源。如果你得到了图像;尝试此方法从控件获取快照并将其保存到Iso存储

 http://stackoverflow.com/questions/13837148/how-can-i-take-a-screenshot-full/13990649#13990649

正如Stephan所说,我认为你没有将图像传达给你的来源。无论如何,我为您创建了一个示例应用程序。由于您可以找到两个分区,您可以通过双击容器向其中添加映像。之后,请尝试保存并检查保存的图像。我测试了应用程序,一切都对我有效。你仍然面临着各种各样的问题,请留下评论


正如斯蒂芬所说,我认为你没有从你的来源获得图像。无论如何,我为您创建了一个示例应用程序。由于您可以找到两个分区,您可以通过双击容器向其中添加映像。之后,请尝试保存并检查保存的图像。我测试了应用程序,一切都对我有效。你仍然面临着各种各样的问题,请留下评论


@sonia:这是什么意思?我正在使用这个方法,并将我的画布传递给它。同样的错误出现了,只有我的画布显示在屏幕上。这个方法写在你提供的链接中,我在我的代码中使用了这个链接,并将画布传递给它,我在其中添加了两幅图像,并拍摄了第三幅图像,在第三幅图像的源代码中,我传递了画布的位图,但在第三幅图像源代码中,仅显示画布,而不是重叠的两幅图像。请尝试将图像添加到网格,并拍摄网格而不是画布的快照。这可能会解决你的问题。结果是一样的,它只显示网格background@sonia:你这是什么意思?我正在使用这个方法,并将画布传递给它总线。同样的错误出现了,只有我的画布显示在屏幕上。这个方法写在你提供的链接中,我在代码中使用了这个方法,并将画布传递给它,我在其中添加了两个图像,并且拍摄第三幅图像,在第三幅图像的源中,我已经传递了画布的位图,但在第三幅图像源中,仅显示画布,而不是重叠的两幅图像。请尝试将图像添加到网格,并拍摄网格的快照,而不是画布。这可能会解决您的问题。结果是一样的,它只显示网格背景。您提供的示例未在我的系统中打开,我认为您是在vs2008中开发的,我有VS2010没有您错了。我在VS 2012中创建了此示例,您无法在VS 2008中为windows phone 7开发应用程序。我不会在VS2010中为您构建示例。您可以简单地重用我在那里提供的类和xaml。仅用于从库中获取图像的扩展方法无效。所有其他方法都能完美工作。不要相信我们是来为您编写代码的。请不费吹灰之力找到解决方案。您提供的示例在我的系统中没有打开,我认为您是在vs2008中开发的,我有VS2010没有您错了。我在VS 2012中创建了此示例,您无法在VS 2008中为windows phone 7开发应用程序。我不会在VS2010中为您构建示例。您可以简单地重用我在那里提供的类和xaml。仅用于从库中获取图像的扩展方法无效。所有其他方法都能完美工作。不要相信我们是来为您编写代码的。请不费吹灰之力找到解决办法。