如何在ac#console应用程序中使用AutoRotate插件?我以为我能做的事情就像settings.AutoRotate = true;我可以改变合身模式来使用接缝雕刻插件.
我已经尝试settings.Add("autorotate","true")过keycollection,以及其他键名AutoRotate和autoRotate.
我在一个简单的方法中使用它.
new AutoRotate().Install(ImageResizer.Configuration.Config.Current);
...
protected static Image ResizeImage(Image image, double scaleFactor)
{
var settings = new ResizeSettings
{
Scale = ScaleMode.Both,
Width = (int)Math.Floor(Image.Width * scaleFactor),
Height = (int)Math.Floor(Image.Height * scaleFactor),
Mode = FitMode.None,
Format = "png"
};
settings.Set("autorotate", "true");
return ImageBuilder.Current.Build(image, settings, true);
}
Run Code Online (Sandbox Code Playgroud) 当我使用 ImageResizer.Net(在 32 位系统上)调整 9000x9000 平方的图像时遇到内存不足异常:
ImageBuilder.Current.Build(imageFileName, outputFileName, settings, true);
Run Code Online (Sandbox Code Playgroud)
不过,我能够使用流成功调整大图像的大小:
using (var stream = new FileStream(imageFileName, FileMode.Open, FileAccess.Read))
using (var img = Image.FromStream(stream, true, false))
{
ImageBuilder.Current.Build(img, outputFileName, settings);
stream.Close();
}
Run Code Online (Sandbox Code Playgroud)
但是,最后一个方法在 x 循环后仍然会遇到内存不足异常。ImageResizer 中是否存在巨大的内存泄漏,或者我的代码中是否存在错误?
无论哪种方式,有解决方法吗?