Как включить поддержку jpeg в node-canvas в x64 windows с помощью компилятора MSVC10?
Мне нужно визуализировать изображения JPEG на стороне сервера nodejs. Я устанавливаю модуль canvas npm со следующими инструкциями по сборке: https://github.com/Automattic/node-canvas/wiki/Installation---Windows меня есть C:\libjpeg-turbo\, как указано в руководстве. Если я сделаю:
NPM установить холст
тогда этот фрагмент кода не запускается при загрузке:
var data = fs.readFileSync("./t.jpg"); var img = new Image();
img.onload = function () {
console.log("onload");
};
img.src = data;
(работает с данными.png). Если я указываю --with-jpeg в моей командной строке, то MSVC жалуется на отсутствие libjpeg.h. Сразу после этого npm удаляет файл с проектом msvc, поэтому я не могу сам установить пути (возможно ли отключить эту очистку?)
Итак, как я могу создать холст для окон с поддержкой JPEG? Нашли вопросы, но нет ответов по этой теме в сети.
2 ответа
Похоже, в binding.gyp отсутствует строка 'include_dirs' в строке #143, поэтому компилятор может найти libjpeg.h в каталоге C:\libjpeg-turbo\. Попробуйте вставить:
'include_dirs': [
'c:/libjpeg-turbo',
],
Установите MSVC10 и 64-битные узлы. При сбое сборки используйте следующие дистрибутивы, которые вы найдете в сети:
распакуйте gtk+-bundle_2.22.1-20101229_win64.zip в c:/gtk . Используйте эту версию, другие не удалось для меня
настройте libjpeg-turbo-1.4.0-vc64.exe в C:\libjpeg-turbo (32-битные библиотеки не будут работать без значимого сообщения)
- перейдите в.\node_modules\canvas\build\ и измените ваш binding.gyp. Добавьте "переменные":
{ 'GTK_Root%': 'C:/GTK', # Set the location of GTK all-in-one bundle 'with_jpeg%': 'true', 'libjpeg_root%':'C:/libjpeg-turbo', 'with_gif%': 'false', 'with_pango%': 'false', 'with_freetype%': 'false' }
а также
['with_jpeg=="true"', {
'defines': [
'HAVE_JPEG'
],
'conditions': [
['OS=="win"', {
'libraries': [
'-l<(libjpeg_root)/lib/jpeg-static.lib','-l<(libjpeg_root)/lib/jpeg.lib'
],
'include_dirs': [
'<(libjpeg_root)/include'
]
}, {
'libraries': [
'-ljpeg'
]
}]
]
}]
затем выполните следующие команды в папке, где находится файл.gyp:
настройка узла
сборка узла
ИМХО библиотеки для таких модулей должны быть включены в состав дистрибутивов npm, странно ожидать опыта WIN32/C++ от программиста nodejs...