2014-02-07 2 views
0

Я уже могу взять экран печати из фактического содержимого моего приложения. Я выбираю az UIElement (например, сетку), и я представляю его в файл bmp.Обрезать и сохранить изображение (UIElement) в приложении Windows Store с помощью C# с

Но как я могу обрезать это изображение, как я себя чувствую? Код ниже работает, просто отсутствует обрезка. Я работаю для Windows 8.1.

public async void SaveVisualElementToFile(UIElement element, StorageFile file) 
    { 
     var renderTargetBitmap = new RenderTargetBitmap(); 
     await renderTargetBitmap.RenderAsync(element); 
     var pixels = await renderTargetBitmap.GetPixelsAsync(); 

     using (IRandomAccessStream stream = await 
       file.OpenAsync(FileAccessMode.ReadWrite)) 
     { 
      var encoder = await BitmapEncoder.CreateAsync(
               BitmapEncoder.JpegEncoderId, stream); 
      byte[] bytes = pixels.ToArray(); 
      encoder.SetPixelData(BitmapPixelFormat.Bgra8, 
           BitmapAlphaMode.Ignore, 
           (uint)renderTargetBitmap.PixelWidth, 
           (uint)renderTargetBitmap.PixelHeight, 
           96, 96, bytes); 

      await encoder.FlushAsync(); 
     } 
    } 

ответ

1

Существует несколько способов сделать это. Есть traditional way, как это описано в MSFT. Вы также можете использовать некоторые расширения, такие как WinRTXamlToolkit и WriteableBitmapEx. Последние два делают это довольно легко. Проверьте их исходники на Codeplex для своих примерных приложений, в которых будут образцы для использования обрезки.

+0

Yaeh, yestoday Я делаю это с помощью WriteableBitmapEx, поэтому thnaks :) – Krekkon

Смежные вопросы