Electron nativeImage 模塊

2019-08-14 19:20 更新

在 Electron 中, 對所有創(chuàng)建 images 的 api 來說, 你可以使用文件路徑或 nativeImage 實例. 如果使用 null ,將創(chuàng)建一個空的image 對象.

例如, 當創(chuàng)建一個 tray 或設(shè)置窗口的圖標時候,你可以使用一個字符串的圖片路徑 :

var appIcon = new Tray('/Users/somebody/images/icon.png');
var window = new BrowserWindow({icon: '/Users/somebody/images/window.png'});

或者從剪切板中讀取圖片,它返回的是 nativeImage:

var image = clipboard.readImage();
var appIcon = new Tray(image);

支持的格式

當前支持 PNG 和 JPEG 圖片格式. 推薦 PNG ,因為它支持透明和無損壓縮.

在 Windows, 你也可以使用 ICO 圖標的格式.

高分辨率圖片

如果平臺支持 high-DPI,你可以在圖片基礎(chǔ)路徑后面添加 @2x ,可以標識它為高分辨率的圖片.

例如,如果 icon.png 是一個普通圖片并且擁有標準分辨率,然后 icon@2x.png將被當作高分辨率的圖片處理,它將擁有雙倍 DPI 密度.

如果想同時支持展示不同分辨率的圖片,你可以將擁有不同size 的圖片放在同一個文件夾下,不用 DPI 后綴.例如 :

images/
├── icon.png
├── icon@2x.png
└── icon@3x.png
var appIcon = new Tray('/Users/somebody/images/icon.png');

也支持下面這些 DPI 后綴:

  • @1x
  • @1.25x
  • @1.33x
  • @1.4x
  • @1.5x
  • @1.8x
  • @2x
  • @2.5x
  • @3x
  • @4x
  • @5x

模板圖片

模板圖片由黑色和清色(和一個 alpha 通道)組成. 模板圖片不是單獨使用的,而是通常和其它內(nèi)容混合起來創(chuàng)建期望的最終效果.

最常見的用力是將模板圖片用到菜單欄圖片上,所以它可以同時適應亮、黑不同的菜單欄.

注意: 模板圖片只在 OS X 上可用.

為了將圖片標識為一個模板圖片,它的文件名應當以 Template 結(jié)尾. 例如:

  • xxxTemplate.png
  • xxxTemplate@2x.png

方法

nativeImage 類有如下方法:

nativeImage.createEmpty()

創(chuàng)建一個空的 nativeImage 實例.

nativeImage.createFromPath(path)

  • path String

從指定 path 創(chuàng)建一個新的 nativeImage 實例 .

nativeImage.createFromBuffer(buffer[, scaleFactor])

  • buffer Buffer
  • scaleFactor Double (可選)

從 buffer 創(chuàng)建一個新的 nativeImage 實例 .默認 scaleFactor 是 1.0.

nativeImage.createFromDataURL(dataURL)

  • dataURL String

從 dataURL 創(chuàng)建一個新的 nativeImage 實例 .

實例方法

nativeImage 有如下方法:

const nativeImage = require('electron').nativeImage;

var image = nativeImage.createFromPath('/Users/somebody/images/icon.png');

image.toPng()

返回一個 Buffer ,它包含了圖片的 PNG 編碼數(shù)據(jù).

image.toJpeg(quality)

  • quality Integer (必須) - 在 0 - 100 之間.

返回一個 Buffer ,它包含了圖片的 JPEG 編碼數(shù)據(jù).

image.toDataURL()

返回圖片數(shù)據(jù)的 URL.

image.getNativeHandle() OS X

返回一個保存了 c 指針的 Buffer 來潛在處理原始圖像.在OS X, 將會返回一個 NSImage 指針實例.

注意那返回的指針是潛在原始圖像的弱指針,而不是一個復制,你必須 確保與 nativeImage 的關(guān)聯(lián)不間斷 .

image.isEmpty()

返回一個 boolean ,標識圖片是否為空.

image.getSize()

返回圖片的 size.

image.setTemplateImage(option)

  • option Boolean

將圖片標識為模板圖片.

image.isTemplateImage()

返回一個 boolean ,標識圖片是否是模板圖片.

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號