diff --git a/atom/common/api/atom_api_native_image.cc b/atom/common/api/atom_api_native_image.cc index 8ec7a96afae7..46b36f1eddc1 100644 --- a/atom/common/api/atom_api_native_image.cc +++ b/atom/common/api/atom_api_native_image.cc @@ -408,14 +408,17 @@ mate::Handle NativeImage::CreateFromBuffer( mate::Arguments* args, v8::Local buffer) { int width = 0; int height = 0; - if (args->Length() >= 3) { - args->GetNext(&width); - args->GetNext(&height); - } - double scale_factor = 1.; + args->GetNext(&scale_factor); + mate::Dictionary options; + if (args->GetNext(&options)) { + options.Get("width", &width); + options.Get("height", &height); + options.Get("scaleFactor", &scale_factor); + } + gfx::ImageSkia image_skia; AddImageSkiaRep(&image_skia, reinterpret_cast(node::Buffer::Data(buffer)), diff --git a/docs/api/native-image.md b/docs/api/native-image.md index 495cce564527..c470056d102e 100644 --- a/docs/api/native-image.md +++ b/docs/api/native-image.md @@ -137,17 +137,19 @@ let image = nativeImage.createFromPath('/Users/somebody/images/icon.png') console.log(image) ``` -### `nativeImage.createFromBuffer(buffer[width, height, scaleFactor])` +### `nativeImage.createFromBuffer(buffer[, scaleFactor, options])` * `buffer` [Buffer][buffer] -* `width` Integer (optional) -* `height` Integer (optional) * `scaleFactor` Double (optional) +* `options` Object (optional) + * `width` Integer (optional) + * `height` Integer (optional) + * `scaleFactor` Double (optional) Returns `NativeImage` Creates a new `NativeImage` instance from `buffer`. The default `scaleFactor` is -1.0. If `buffer` is a bitmap, specify `width` and `height` of the image. +1.0. The `width` and `height` options are **required** for bitmap buffers. ### `nativeImage.createFromDataURL(dataURL)` diff --git a/spec/api-native-image-spec.js b/spec/api-native-image-spec.js index e9c6362310be..2e622b3cf5b6 100644 --- a/spec/api-native-image-spec.js +++ b/spec/api-native-image-spec.js @@ -26,7 +26,8 @@ describe('nativeImage module', () => { const imageC = nativeImage.createFromBuffer(imageA.toJPEG(100)) assert.deepEqual(imageC.getSize(), {width: 538, height: 190}) - const imageD = nativeImage.createFromBuffer(imageA.toBitmap(), 538, 190) + const imageD = nativeImage.createFromBuffer(imageA.toBitmap(), + {width: 538, height: 190}) assert.deepEqual(imageD.getSize(), {width: 538, height: 190}) }) })