Значок сенсорной панели с пользовательским изображением не загружается в Electron

Я пытаюсь создать кнопку с пользовательским изображением на сенсорной панели в Electron. При тестировании через "электрон". изображение появляется — как опубликованное приложение macOS, кнопка пуста и не имеет изображения на сенсорной панели. Приложение создается и публикуется через электронный конструктор. Я что-то пропустил?

const {app, BrowserWindow, ipcMain, dialog, TouchBar} = require('electron');
const {TouchBarButton} = TouchBar;

// Touchbar support
let touchBarResult = new TouchBarButton({
    'label': 'Let me shrink some images!',
    'backgroundColor': '#000000',
});

let touchBarIcon = new TouchBarButton({
    'backgroundColor': '#000000',
    'icon': path.join(__dirname, 'build/[email protected]'),
    'iconPosition': 'center',
});

const touchBar = new TouchBar([
    touchBarResult
]);

// Add Touchbar icon
touchBar.escapeItem = touchBarIcon;

Полный код доступен в ветке разработки на Github: https://github.com/stefansl/image-shrinker/blob/dev/main.js


person StefanSL    schedule 22.02.2018    source источник


Ответы (1)


Компоненты TouchBarButton принимают параметр icon как объект NativeImage. Если у вас есть только одно изображение для показа, его максимальный размер составляет 16x16. Этот код работает отлично:

const {nativeImage} = require('electron');
// ...
let touchBarIcon = new TouchBarButton({
  'backgroundColor': '#000000',
  'icon': nativeImage.createFromPath(path.join(__dirname, 'build/[email protected]')).resize({
    width: 16,
    height: 16,
  }),
  'iconPosition': 'center',
});
person Oussama Bouisfi    schedule 23.01.2019