High-Resolution Image and Movie Export With AtomicusChart®
AtomicusChart® enables users to export high-resolution images. Our component can export images with resolutions of up to 16,000 by 16,000 pixels, and with customizable size compensation of text, lines, and point data (dependent on pixel size).
This allows us to avoid a typical problem associated with image export. Since the printer resolution is very high, exporting the image as it is results in poor quality — you’ll actually see the pixels (especially for thin lines and text).
Images
In order to export a simple image as it is displayed in the control, you can add the following code line:
var image = chartControl.GetSnapshot();
Also, import parameters such as resolution, MSAA and DPI can be customized:
var image = chartControl.GetSnapshot(new RenderTargetDescription(400, 400, Multisampling.High8X), new Vector2F(96));
If you need to import a set of images, we recommend that you use our Snapshoter class as it will keep alive the required video memory cache:
Snapshoter snapshoter = chartControl.GetSnapshoter(); var image = snapshoter.GetSnapshot(new RenderTargetDescription(400, 400, Multisampling.High8X), new Vector2F(96));
Movies
Also, our AtomicusChart® provides the ability to export movies. When exporting the movies, H.264 video codec is used. In order to export the video in a proper way, copy ffmpeg.exe using the following link into the application root. This multimedia framework is used for video coding.
var movieRecorder = new MovieRecorder { //Movie duration default is 1000 DurationMiliseconds = 10000, //Can be not specified. Default is 25 FramesPersecond = 25, //Movie resolution RenderTargetDescription = new RenderTargetDescription(3840, 2160, Multisampling.High8X), //Encoder parameters VideoParameters = new VideoParameters { ConstantRateFactor = 25 } }; var videoRecordArgs = new MovieRecordArgument( chartControl.GetSnapshoter(), new RotateAroundAxisMotion(rotationAxis, chartControl.View.Camera3D.GetViewInfo()), saveFileDialog.FileName); // Path to save movieRecorder.SaveVideo(videoRecordArgs, CancellationToken.None, null);
Here's an example of the movie exported from AtomicusChart®: