* Electron version: 1.6.1 beta
* Operating system: Microsoft Windows [Version 10.0.14393]

```
app.getFileIcon(path.normalize(file), (err, icon) => {
    if (icon) {
        console.log(icon.toBitmap()); // [buffer array]
        console.log(icon.toBitmap().length); // 9216
        console.log(icon.getBitmap()); // [buffer array]
        console.log(icon.getBitmap().length); // 9216
        console.log(icon.toPNG()); // EMPTY buffer array []
        console.log(icon.toPNG().length); // 0
        console.log(icon.getSize()); // {width: 32, height: 32}
        console.log(icon.toDataURL()); // "data:image/png;base64,"
    }
});
```
atom/common/api/atom_api_native_image.cc
std::vector<unsigned char> output;
  gfx::JPEG1xEncodedDataFromImage(image_, quality, &output);
  return node::Buffer::Copy(
      isolate,
      reinterpret_cast<const char*>(&output.front()),
      static_cast<size_t>(output.size())).ToLocalChecked();
}
std::string NativeImage::ToDataURL() {
  scoped_refptr<base::RefCountedMemory> png = image_.As1xPNGBytes();
  std::string data_url;
  data_url.insert(data_url.end(), png->front(), png->front() + png->size());
  base::Base64Encode(data_url, &data_url);
  data_url.insert(0, "data:image/png;base64,");
  return data_url;
}
v8::Local<v8::Value> NativeImage::GetBitmap(v8::Isolate* isolate) {
  if (IsEmpty()) return node::Buffer::New(isolate, 0).ToLocalChecked();
  const SkBitmap* bitmap = image_.ToSkBitmap();
  SkPixelRef* ref = bitmap->pixelRef();
  return node::Buffer::New(isolate,
                           reinterpret_cast<char*>(ref->pixels()),
                           bitmap->getSafeSize(),
                           &Noop,
                           nullptr).ToLocalChecked();
}
v8::Local<v8::Value> NativeImage::GetNativeHandle(v8::Isolate* isolate,