我有一个UniformGrid,其中包含我拍摄的所有视频缩略图(它们都是System.Windows.Control.Image)。我的目标是在点击按钮后保存所有缩略图的jpg。有没有办法从UbiformGrid抓取位图图片或其他东西? 我正在使用C#与WPF。获取所有图片并将其保存到文件
编辑:像一个截图。但我不想窗边框,只有网格内容。
编辑2:我终于找到了解决方案。谢谢您的帮助。
RenderTargetBitmap renderTarget = new RenderTargetBitmap((int)ThumbnailPanel.Width,
(int)ThumbnailPanel.Height, 96, 96, PixelFormats.Pbgra32);
VisualBrush sourceBrush = new VisualBrush(ThumbnailPanel);
DrawingVisual drawingVisual = new DrawingVisual();
DrawingContext drawingContext = drawingVisual.RenderOpen();
using (drawingContext)
{
drawingContext.DrawRectangle(sourceBrush, null, new Rect(new Point(0, 0), new Point(ThumbnailPanel.Width, ThumbnailPanel.Height)));
}
renderTarget.Render(drawingVisual);
JpegBitmapEncoder jpgEncoder = new JpegBitmapEncoder();
jpgEncoder.QualityLevel = 80;
jpgEncoder.Frames.Add(BitmapFrame.Create(renderTarget));
Byte[] _imageArray;
using (MemoryStream outputStream = new MemoryStream())
{
jpgEncoder.Save(outputStream);
_imageArray = outputStream.ToArray();
}
FileStream fileStream = new FileStream(@"myThumbnails.jpg", FileMode.Create, FileAccess.ReadWrite);
BinaryWriter binaryWriter = new BinaryWriter(fileStream);
binaryWriter.Write(_imageArray);
binaryWriter.Close();
请张贴你发现了什么作为一个答案,或者至少是你的问题的编辑。这样,其他人可以从你发现的东西中受益。 –