2015-06-20 2 views
8

Ich muss JPEG-Bilder auf Nodejs Serverseite rendern. Ich installiere Leinwand npm Modul mit folgenden Bauanleitungen: https://github.com/Automattic/node-canvas/wiki/Installation---Windows Ich habe C: \ libjpeg-turbo \ wie es im Handbuch erwähnt wird. Wenn ich das tue:Wie aktiviert man JPEG-Unterstützung in Node-Canvas auf x64-Windows mit MSVC10-Compiler?

npm installieren Leinwand

dann dieses Stück Code nicht onload nicht starten:

var data = fs.readFileSync("./t.jpg"); var img = new Image(); 
img.onload = function() { 
    console.log("onload"); 
}; 
img.src = data; 

(es funktioniert mit .png Daten). Wenn ich --with-jpeg in meiner Befehlszeile angeben, beschwert sich MSVC über fehlende libjpeg.h. Direkt danach löscht npm die Datei mit msvc project, so dass ich die Pfade nicht selbst einstellen kann (ist es möglich, diese Bereinigung zu deaktivieren?)

Wie kann ich Canvas für Windows mit JPEG-Unterstützung erstellen? Haben Fragen, aber keine Antworten zu diesem Thema im Internet gefunden.

Antwort

0

Sieht für mich wie binding.gyp fehlt eine 'include_dirs' Direktive in Zeile # 143, so dass der Compiler libjpeg.h im Verzeichnis C: \ libjpeg-turbo \ finden kann. Versuchen Sie folgendes:

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

Installieren Sie MSVC10 und 64bit nodejs. Wenn Ihr Build fehlschlägt, verwenden Sie die folgenden Distributionen, die Sie im Netz finden:

  • unzip gtk + -bundle_2.22.1-20101229_win64.zip auf c:/gtk. Verwenden Sie diese Version, andere versagten für mich

  • Setup libjpeg-turbo-1.4.0-vc64.exe in C: \ libjpeg-turbo (32bit Libs ohne meaningfull Meldung fehlschlagen würde)

  • gehen die . \ node_modules \ canvas \ build \ und ändern Sie Ihre binding.gyp. In 'Variablen':
{ 
    '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' 
    } 

und auch

['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' 
       ] 
      }] 
      ] 
     }] 

dann folgende Befehle im Ordner exec, wo .gyp Datei befindet:

Knoten-gyp konfigurieren

nod e-gyp build

IMHO-Bibliotheken für solche Module sollten als Teil der npm-Distributionen enthalten sein, es ist seltsam, WIN32/C++ - Kenntnisse von nodejs programmer ...

zu erwarten
Verwandte Themen