code: def get_thumbnail_name(self, thumbnail_options, transparent=False,
                             high_resolution=False):
          
          thumbnail_options = self.get_options(thumbnail_options)
          path, source_filename = os.path.split(self.name)
          source_extension = os.path.splitext(source_filename)[1][1:]
          preserve_extensions = self.thumbnail_preserve_extensions
          if preserve_extensions and (
                  preserve_extensions is True or
                  source_extension.lower() in preserve_extensions):
              extension = source_extension
          elif transparent:
              extension = self.thumbnail_transparency_extension
          else:
              extension = self.thumbnail_extension
          extension = extension or 'jpg'
  
          prepared_opts = thumbnail_options.prepared_options()
          opts_text = '_'.join(prepared_opts)
  
          data = {'opts': opts_text}
          basedir = self.thumbnail_basedir % data
          subdir = self.thumbnail_subdir % data
  
          if isinstance(self.thumbnail_namer, six.string_types):
              namer_func = utils.dynamic_import(self.thumbnail_namer)
          else:
              namer_func = self.thumbnail_namer
          filename = namer_func(
              thumbnailer=self,
              source_filename=source_filename,
              thumbnail_extension=extension,
              thumbnail_options=thumbnail_options,
              prepared_options=prepared_opts,
          )
          if high_resolution:
              filename = self.thumbnail_highres_infix.join(
                  os.path.splitext(filename))
          filename = '%s%s' % (self.thumbnail_prefix, filename)
  
          return os.path.join(basedir, path, subdir, filename)
docs: Return a thumbnail filename for the given ``thumbnail_options``
          dictionary and ``source_name`` (which defaults to the File's ``name``
          if not provided).