2016-07-18 4 views
0

Я работаю над окном телефона с телефоном 8.1, где мне нужно преобразовать объект многоугольника в изображение и в конечном итоге сохранить его как файл png. До сих пор я создал объект многоугольника с различными свойствами. Теперь я понятия не имею о других частях.Сохранение объекта polygon в bitmapimage в WIndows phone 8.1

 pol.Opacity = 0.5; 
     System.Windows.Point Point1 = new System.Windows.Point(10, 200); 
     System.Windows.Point Point2 = new System.Windows.Point(60, 140); 
     System.Windows.Point Point3 = new System.Windows.Point(130, 140); 
     System.Windows.Point Point4 = new System.Windows.Point(180, 200); 
     System.Windows.Point Point5 = new System.Windows.Point(130, 260); 
     System.Windows.Point Point6 = new System.Windows.Point(60, 260); 
     PointCollection myPointCollection = new PointCollection(); 
     myPointCollection.Add(Point1); 
     myPointCollection.Add(Point2); 
     myPointCollection.Add(Point3); 
     myPointCollection.Add(Point4); 
     myPointCollection.Add(Point5); 
     myPointCollection.Add(Point6); 
     pol.Points = myPointCollection; 
     var imageBrush = new ImageBrush(); 
     imageBrush.ImageSource = image.Source; 
     pol.Fill = imageBrush; 
     pol.Height = image.Height; 
     pol.MaxHeight = image.Height; 
     pol.MaxWidth = image.Width; 
     pol.Width = image.Width; 
     pol.Stroke = new SolidColorBrush(Colors.Red); 
     pol.StrokeThickness = 2; 
     pol.Margin = image.Margin; 

ответ

1

Для достижения этой цели вы можете использовать класс WritableBitmap. У меня есть аналогичная запись в Silverlight, которую вы можете найти: How to Crop an Image based on a Shape or Path control?. Надеюсь, что это поможет, по крайней мере, дает некоторые базовые понятия. Дайте мне знать, если вам нужна дополнительная помощь по этому поводу.

+0

Точно ... Я тоже использую то же самое. – abhishek

+0

Это сработало, но новая проблема, с которой я столкнулся, - это сохранить форму как файл png в «фотографиях» WIndows Phone 8.1. –

0

Чтобы сохранить форму, как PNG, вы можете использовать следующий фрагмент кода:

 WriteableBitmap bmp = GetAsWritableBitmap(); 
     using (var mediaLibrary = new MediaLibrary()) 
     { 
      using (var stream = new MemoryStream()) 
      { 
       var fileName = string.Format("Gs{0}.jpg", Guid.NewGuid()); 
       bmp.SaveJpeg(stream, bmp.PixelWidth, bmp.PixelHeight, 0, 100); 
       stream.Seek(0, SeekOrigin.Begin); 
       var picture = mediaLibrary.SavePicture(fileName, stream); 
       if (picture.Name.Contains(fileName)) return true; 
      } 
     } 

Надежда, что помогает.

+0

Это сработало для вас? –