class_docstr: Class to represent an interface to the FreeImage library.
  This class is relatively thin. It provides a Pythonic API that converts
  Freeimage objects to Python objects, but that's about it.
  The actual implementation should be provided by the plugins.
  
  The recommended way to call into the Freeimage library (so that
  errors and warnings show up in the right moment) is to use this
  object as a context manager:
  with imageio.fi as lib:
      lib.FreeImage_GetPalette()
class_docstr_tok: ["Class","to","represent","an","interface","to","the","FreeImage","library",".","This","class","is","relatively","thin",".","It","provides","a","Pythonic","API","that","converts","Freeimage","objects","to","Python","objects",",","but","that","'s","about","it",".","The","actual","implementation","should","be","provided","by","the","plugins",".","The","recommended","way","to","call","into","the","Freeimage","library","(","so","that","errors","and","warnings","show","up","in","the","right","moment",")","is","to","use","this","object","as","a","context","manager",":","with","imageio.fi","as","lib",":","lib.FreeImage_GetPalette","(",")"]
code: def __exit__(self, *args):
      self._show_any_warnings()
      self._lock.release()
  
imports: import os
  import sys
  import ctypes
  import threading
  import logging
  import numpy
  from ..core import get_remote_file, load_lib, Dict, resource_dirs, IS_PYPY, get_platform, InternetNotAllowedError, NeedDownloadError
label_desc: Use image node_id 8 for calling the Freeimage obj's underlying member method code with example usage: obj.__exit__() without return types