在 Windows 应用商店应用程序中,我想裁剪 WriteableBitmap 的旋转矩形部分,如下图中的案例 2。
- 我有矩形的 P0、宽度、高度和 P1 和旋转角度。
- 旋转基于每个矩形的中心
我正在使用WriteableBitmapEx.WinRT中提供的 Crop 扩展方法进行裁剪。
在案例 1 中,我正在执行以下操作:
RenderTargetBitmap renderTargetBitmap = new RenderTargetBitmap();
await renderTargetBitmap.RenderAsync(PhotoGrid);
WriteableBitmap bitmapImage = new WriteableBitmap(renderTargetBitmap.PixelWidth, renderTargetBitmap.PixelHeight);
IBuffer pixelBuffer = await renderTargetBitmap.GetPixelsAsync();
using (var stream = new InMemoryRandomAccessStream())
{
var encoder = await BitmapEncoder.CreateAsync(BitmapEncoder.JpegEncoderId, stream);
encoder.SetPixelData(BitmapPixelFormat.Bgra8, BitmapAlphaMode.Ignore, (uint)renderTargetBitmap.PixelWidth, (uint)renderTargetBitmap.PixelHeight, 96, 96, pixelBuffer.ToArray());
await encoder.FlushAsync();
stream.Seek(0);
bitmapImage.SetSource(stream);
}
// Redraw the WriteableBitmap
bitmapImage.Invalidate();
SampleImage.Source = bitmapImage.Crop(new Rect(p0.X, p0.Y, width, height));
但是当轮换到位时,我不知道应该应用什么计算来像案例 2 那样进行裁剪。
你们中有人愿意帮忙吗?
谢谢!