Search code examples
c#.netnuget-packagefreeimage

Memory leak while converting images with FreeImage.Net


When loading the image with the nuget package, (FreeImage 3.18.0.0) it does not unload memory even if '''dib.SetNull()''' was set.

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

Solution

  • FreeImage has additional copy of image you need to unload. FreeImage_Load Memory Leak

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