gpt4 book ai didi

c# - InkCanvas 保存产生错误的尺寸

转载 作者:太空宇宙 更新时间:2023-11-03 14:58:16 27 4
gpt4 key购买 nike

我使用具有固定宽度和高度的 Canvas 。它有 500x500 大,我也想用这种方法保存它:

    private async void SaveasGIF(object sender, RoutedEventArgs e)
{
var savePicker = new Windows.Storage.Pickers.FileSavePicker();
savePicker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.PicturesLibrary;
savePicker.FileTypeChoices.Add("Gif with embedded ISF", new[] { ".gif" });

Windows.Storage.StorageFile file = await savePicker.PickSaveFileAsync();
if (null != file)
{
try
{
using (Windows.Storage.Streams.IRandomAccessStream stream = await file.OpenAsync(Windows.Storage.FileAccessMode.ReadWrite))
{
// Truncate any existing stream in case the new file
// is smaller than the old file.
stream.Size = 0;

await MyInkCanvas.InkPresenter.StrokeContainer.SaveAsync(stream);
}
//MainPage.NotifyUser("File has been saved!", NotifyType.StatusMessage);
}
catch (Exception ex)
{
//MainPage.NotifyUser(ex.Message, NotifyType.ErrorMessage);
}
}
SaveGIF.IsChecked = false;
}

但是当我这样做时,完成的 .gif 文件被裁剪并且尺寸类似于 421x643。

我可以做些什么来解决这个问题?

最佳答案

此代码 await MyInkCanvas.InkPresenter.StrokeContainer.SaveAsync(stream); 用于将墨迹笔画集合保存到文件中。这与将 InkCanvas 控件的内容渲染到图像中并不完全相同。如果笔划超出 InkCanvas,生成的 .gif 尺寸将大于原始 InkCanvas 的尺寸,反之亦然。

如果您的主要目标是将 InkCanvas 的内容保存为图像(而不是您计划稍后加载到 InkCanvas 中的墨迹笔划) , 使用 Win2D as described here .

关于c# - InkCanvas 保存产生错误的尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47743885/

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