gpt4 book ai didi

c# - 将 WPF 可视化元素保存为 JPEG

转载 作者:行者123 更新时间:2023-11-30 17:47:50 29 4
gpt4 key购买 nike

这件事让我发疯。

我有一张 Visiblox 图表。我目前正在使用以下代码将其导出为 PNG:

    var chart = this.CalibrationChartVisibility == Visibility.Visible ? this.calibrationChart : this.residualChart;


var transform = chart.LayoutTransform;
chart.LayoutTransform = null;

var width = (int)chart.ActualWidth;
var height = (int)chart.ActualHeight;

var rtb = new RenderTargetBitmap(width, height, 96, 96, PixelFormats.Pbgra32);
rtb.Render(chart);

var encoder = new PngBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(rtb));

var stream = new MemoryStream();

encoder.Save(stream);
stream.Position = 0;

chart.LayoutTransform = transform;
return stream.ToArray();

我得到这样的东西: png chart

但现在我还需要将其导出为 JPEG。我认为这很简单,只需更改编码器,但这是我得到的: jpg chart

我试过这个: http://social.msdn.microsoft.com/Forums/vstudio/en-US/31ac62d4-399b-4f2e-a9b9-749efe7528b6/rendertargetbitmap-to-file-problem?forum=wpf

还有这个: http://www.grumpydev.com/2009/01/03/taking-wpf-screenshots/

还有这个: Get a bitmap image from a Control view

和 ervey 对这篇文章的建议: How to save image using JpegBitmapEncoder

或者这个: saving WPF InkCanvas to a JPG - image is getting cropped

还有我想到的所有其他事情,但结果还是一样。

一定有什么东西我忽略了,但我不知道它是什么。

最佳答案

总而言之,这似乎是一个背景问题,因为附加到该问题的 PNG 具有除图表线之外的所有透明元素,并且由于 JPEG 不支持透明元素,因此所有透明元素都将是黑色的。

最简单的解决方案是将图表背景设置为某种颜色

关于c# - 将 WPF 可视化元素保存为 JPEG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24164024/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com