使用 FreeImage.Net 转换图像时内存泄漏
Memory leak while converting images with FreeImage.Net
使用 nuget 包加载图像时,(FreeImage 3.18.0.0) 即使设置了“'dib.SetNull()'”也不会卸载内存。
var dib = FreeImage.Load(FREE_IMAGE_FORMAT.FIF_PNG, pngFile.FullName,
FREE_IMAGE_LOAD_FLAGS.DEFAULT);
FreeImage.Save(FREE_IMAGE_FORMAT.FIF_JP2, dib, jpgFile.FullName, FREE_IMAGE_SAVE_FLAGS.JPEG_OPTIMIZE);
dib.SetNull();
FreeImage 有您需要卸载的额外图像副本。
FreeImage_Load Memory Leak
尝试:
FreeImage.Unload(dib);
var dib = FreeImage.Load(FREE_IMAGE_FORMAT.FIF_PNG, pngFile.FullName,
FREE_IMAGE_LOAD_FLAGS.DEFAULT);
FreeImage.Save(FREE_IMAGE_FORMAT.FIF_JP2, dib, jpgFile.FullName, FREE_IMAGE_SAVE_FLAGS.JPEG_OPTIMIZE);
FreeImage.Unload(dib);
dib.SetNull();
使用 nuget 包加载图像时,(FreeImage 3.18.0.0) 即使设置了“'dib.SetNull()'”也不会卸载内存。
var dib = FreeImage.Load(FREE_IMAGE_FORMAT.FIF_PNG, pngFile.FullName,
FREE_IMAGE_LOAD_FLAGS.DEFAULT);
FreeImage.Save(FREE_IMAGE_FORMAT.FIF_JP2, dib, jpgFile.FullName, FREE_IMAGE_SAVE_FLAGS.JPEG_OPTIMIZE);
dib.SetNull();
FreeImage 有您需要卸载的额外图像副本。 FreeImage_Load Memory Leak
尝试: FreeImage.Unload(dib);
var dib = FreeImage.Load(FREE_IMAGE_FORMAT.FIF_PNG, pngFile.FullName,
FREE_IMAGE_LOAD_FLAGS.DEFAULT);
FreeImage.Save(FREE_IMAGE_FORMAT.FIF_JP2, dib, jpgFile.FullName, FREE_IMAGE_SAVE_FLAGS.JPEG_OPTIMIZE);
FreeImage.Unload(dib);
dib.SetNull();