HTML Body:

Press Ctrl + V to paste Screenshot from Clipboard into Webpage.
<div contenteditable="true"></div>

JavaScript:

/* Firefox helper */
document.addEventListener('keydown', function(e)
{
  if(e.ctrlKey && e.which===86)
  {
    document.querySelector('div').focus();
  }
});

document.addEventListener('paste', function(e)
{
  var items= (e.clipboardData  || e.originalEvent.clipboardData).items,
      blob;

  console.log(e);

  /* Firefox */
  if(!items)
  {
    window.setTimeout(function()
    {
      var img= document.querySelector('div img');
      if(img) document.body.appendChild( img );
    }, 1);
  }

  /* Webkit */
  else
  {
    for(var i=0; items[i]; i++)
    {
      if(items[i].type.indexOf("image") === 0)
      {
        blob = items[i].getAsFile();
      }
    }

    if(blob !== null)
    {
      var reader = new FileReader();

      reader.onload = function(event)
      {
        var img= new Image();
        img.src=event.target.result;
        document.body.appendChild(img);
      };

      reader.readAsDataURL(blob);
    }
  }

  document.querySelector('div').blur();
});

See Example Demo.

Tested in Firefox and Chrome.

I developed a Sass-Function to read all glyphs in ttf-font-file and return them as unicode togehter with thier PostScript-name. So you can just manage all icons and thier names with your font-file.
To read out the ttf file I use the RubyGem TTFunk.

 

Here is the Ruby part that has to be included to your config.rb:

require 'ttfunk'

module Sass::Script::Functions

  def getCharListFromTTF(path)
    file = TTFunk::File.open( "../main/webapp/s/fonts/#{path.value}" )
    cmap = file.cmap
    post = file.postscript

    chars = {}

    cmap.tables.each do |subtable|
      next if !subtable.unicode?
      chars = chars.merge( subtable.code_map )
    end

    chars.delete(65535) # removes the .notdef entry

    puts "\n Found #{chars.length} characters in #{path.value} \n\n"

    return Sass::Script::List.new(
      chars.map { |dec, glyph_id|
        Sass::Script::List.new(
          [
            Sass::Script::String.new( "\"\\#{dec.to_s(16)}\"" ),
            Sass::Script::String.new( post.glyph_for( glyph_id ) )
          ],
          :space
        )
      },
      :comma
    )
  end

end

And here is how you use it in Sass-CSS:

@font-face
{
  font-family: MyIconFont-Regular;
  src: font-url('icon-font.eot');                                    /* IE9 Compat Modes */
  src: font-url('icon-font.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
       font-url('icon-font.woff')       format('woff'),              /* Modern Browsers */
       font-url('icon-font.ttf')        format('truetype'),          /* Android, Safari/iOS */
       font-url('icon-font.otf')        format('opentype'),          
       font-url('icon-font.svg?#MyIconFont-Regular') format('svg');  /* Legacy iOS */
  font-weight: normal;
  font-style: normal;
}

.icof
{
  display: inline-block;
  position: relative;
  line-height: 1;

  &:before
  {
    font:
    {
      family: MyIconFont-Regular;
      style: normal;
      weight: normal;
    };
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
  }
}

@each $char in getCharListFromTTF('icon-font.ttf')
{
  .icof-#{nth($char, 2)}:before
  {
    content: nth($char, 1);
  }
}

 

Another possibility would be to read out the xml-based svg-file.