Сохранение объекта многоугольника в растровое изображение в телефоне WIndows 8.1

image windows-phone-8.1 windows-phone

28 просмотра

2 ответа

14 Репутация автора

Я работаю над приложением Windows Phone 8.1, где мне нужно преобразовать объект многоугольника в изображение и в конечном итоге сохранить его в виде файла PNG. До сих пор я создал объект многоугольника с различными свойствами. Теперь я не разбираюсь в других частях.

        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;
Автор: Avirup Basu Источник Размещён: 18.07.2016 05:26

Ответы (2)


1 плюс

66 Репутация автора

Решение

Вы можете использовать класс WritableBitmap для достижения этой цели. У меня есть похожий пост на Silverlight, на который вы можете сослаться: Как обрезать изображение на основе элемента управления Shape или Path? , Надеюсь, что это помогает, по крайней мере, дает некоторые основные понятия. Дайте мне знать, если вам нужна дополнительная помощь по этому вопросу.

Автор: Kunal Chowdhury Размещён: 19.07.2016 05:25

0 плюса

66 Репутация автора

Чтобы сохранить форму в формате 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;
           }
       }

Надеюсь, это поможет.

Автор: Kunal Chowdhury Размещён: 20.07.2016 04:46
Вопросы из категории :
32x32