2015-06-20 1 views
8

Мне нужно отображать jpeg-изображения на nodejs serverside. Я устанавливаю модуль холста npm со следующими инструкциями по сборке: https://github.com/Automattic/node-canvas/wiki/Installation---Windows У меня есть C: \ libjpeg-turbo \, как указано в руководстве. Если я:Как включить поддержку jpeg в узловом холсте в окнах x64 с помощью компилятора MSVC10?

НПМ установить холст

этот кусок кода не запускается OnLoad:

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? Найденные вопросы, но нет ответов на эту тему в сети.

ответ

0

Мне кажется, что binding.gyp не имеет директивы 'include_dirs' в строке # 143, поэтому компилятор может найти libjpeg.h в каталоге C: \ libjpeg-turbo \. Попробуйте ввести:

 'include_dirs': [ 
     'c:/libjpeg-turbo', 
     ], 
3

Установите MSVC10 и 64bit nodejs. Когда сборка не удается, используйте следующие дистрибутивы, которые вы найдете в сети:

  • распакуйте GTK + -bundle_2.22.1-20101229_win64.zip в C:/GTK. Используйте эту версию, другие не для меня

  • установка libjpeg-турбо-1.4.0-vc64.exe в C: \ libjpeg-турбо (32bit ЛИЭС потерпит неудачу, не Внушительные сообщения)

  • пойти . \ node_modules \ canvas \ build \ и изменить your 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' 
       ] 
      }] 
      ] 
     }] 

затем EXEC следующие команды в папке, где находится файл .gyp:

узел-Gyp настроить

кивок e-gyp build

Библиотеки IMHO для таких модулей должны быть включены в состав дистрибутивов npm, его странно ожидать опыта WIN32/C++ от программиста nodejs ...

 Смежные вопросы

  • Нет связанных вопросов^_^