如何在Windows手机中合并两个图像并将其保存到隔离存储

时间:2013-02-28 06:37:13

标签: windows-phone-7 windows-phone

我想要合并两个图像,一个图像是300x300,另一个是100x100,首先我创建了一个画布,然后我创建了两个图像,我已将这两个图像添加到画布到画布并且画布被添加到内容面板,然后我创建了一个writeablebitmap并渲染画布并创建了一个方法savejpeg,它将图像保存到isolated stoarage,但是隔离的存储没有显示整个图像它保存了黑屏

首先我通过代码设置了它的高度宽度和背景颜色创建了一个画布,然后我以编程方式创建了两个图像,我已将其添加到画布中,然后将画布添加到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);
        }

    }

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

2 个答案:

答案 0 :(得分:3)

像Stephan说的那样,我认为你没有把图像传给你的来源。我以任何方式为您创建了一个示例应用程序。在那里你可以找到两个分区,你可以通过双击容器来添加图像。之后尝试保存并检查您保存的图像。我测试了应用程序,每件事都适合我。你仍然面临任何问题,请发表评论。

https://www.dropbox.com/s/1vjbbou96w0r15r/SaveImageApp.zip

答案 1 :(得分:0)

请检查您获取图像的天气或图像来源。如果你得到的图像;尝试使用此方法从控件获取快照并将其保存到Iso存储。

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