2016-07-18 10 views
0

Ich arbeite an einer Windows Phone 8.1 App, wo ich ein Polygon-Objekt in ein Bild konvertieren und schließlich als PNG-Datei speichern muss. Bis jetzt habe ich ein Polygon-Objekt mit verschiedenen Eigenschaften erstellt. Jetzt habe ich keine Ahnung von den anderen Teilen.Speichern eines Polygon-Objekts in ein Bitmap-Bild in 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; 

Antwort

1

Sie können die WritableBitmap-Klasse verwenden, um dies zu erreichen. Ich habe eine ähnliche Post auf Silverlight, die Sie beziehen können: How to Crop an Image based on a Shape or Path control?. Hoffnung, die hilft, gibt zumindest einige grundlegende Konzepte. Lassen Sie es mich wissen, wenn Sie weitere Hilfe benötigen.

+0

Genau ... Ich habe das gleiche auch verwendet. – abhishek

+0

Es funktionierte eigentlich, aber das neue Problem, das ich gegenüberstelle, ist das Speichern der Form als PNG-Datei in "Fotos" von Windows Phone 8.1 –

0

die Form als PNG zu speichern, können Sie den folgenden Code-Schnipsel verwenden können:

 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; 
      } 
     } 

Hoffnung, das hilft.

+0

Hat es für Sie funktioniert? –