我已经可以从我的应用程序的实际内容中获取打印屏幕。 我选择az UIElement(例如网格),然后将其渲染为bmp文件。
但我怎么能像我一样裁剪这张图片呢? 代码低于作品,只是裁剪缺失。我在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();
}
}
答案 0 :(得分:1)
有几种方法可以做到这一点。 MSFT自己支持traditional way。您还可以使用某些扩展程序,例如WinRTXamlToolkit和WriteableBitmapEx。后两者使它变得非常容易。在Codeplex上查看他们的源代码,了解他们的示例应用程序,这些应用程序将提供有关如何使用裁剪的示例。