2013-02-28 67 views
0

我想要合并两个图像,一个图像是300x300,另一个是100x100,首先我创建了一个画布,然后创建了两个图像,我添加了到这两个图像到画布和画布被添加到内容面板,然后我创建了一个writeablebitmap并呈现画布并创建了一个方法savejpeg它将图像保存到isolated stoarage,但孤立的存储不显示整个图像它保存一个黑色屏幕。如何在Windows Phone中合并两个图像并将其保存到独立存储器

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

    } 

当我保存图像,然后我得到孤立存储中的黑色屏幕。 如何将两个图像保存在画布上?

回答

0

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

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

我现在我的代码是: – sonia 2013-02-28 11:24:05

+0

@sonia:你是什么意思? – 2013-02-28 12:31:42

+0

我正在使用这种方法,并将我的画布传递给它总线同样的错误即将到来,只有我的画布显示在屏幕上 – sonia 2013-03-01 04:30:24

3

就像史蒂芬说的,我认为你没有得到你的来源形象。我以任何方式为您创建了一个示例应用程序。在这里你可以找到两个分区,你可以通过双击容器来添加图像。之后,尝试保存并检查您保存的图像。我测试了应用程序,每件事都为我工作。如果您遇到任何问题,请发表评论。

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

+0

你提供的示例在我的系统中没有打开,我认为你已经在VS2008发展,我有vs2010 – sonia 2013-03-04 13:25:59

+0

不,你错了。我在VS 2012中创建了这个示例,因此无法在VS 2008中开发适用于Windows Phone 7的应用程序。我不打算在VS2010中为您创建示例。你可以简单地重用我在那里提供的类和xaml。只有从库中获取图像的扩展方法不起作用。所有其他方法将完美地工作。不要相信我们在这里为你写代码。请花费一点努力找到解决方案。 – 2013-03-04 14:04:47

+0

好okthanku这么多 – sonia 2013-03-04 15:40:47

相关问题