【问题标题】:Memory leak while converting images with FreeImage.Net使用 FreeImage.Net 转换图像时出现内存泄漏
【发布时间】:2021-08-27 08:03:42
【问题描述】:

使用 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();

【问题讨论】:

    标签: c# .net nuget-package freeimage


    【解决方案1】:

    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();
    

    【讨论】:

    • 虽然内存随着时间的推移而增加,直到计算机系统崩溃,现在一切都在完美地工作,没有内存泄漏了。谢谢。
    • 我会把它放在try/finally 以保证卸载
    猜你喜欢
    • 1970-01-01
    • 2013-11-09
    • 2013-11-02
    • 1970-01-01
    • 1970-01-01
    • 2020-09-21
    • 2015-11-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多