2015-06-20 13 views
8

Ho bisogno di rendere immagini jpeg su nodejs serveride. Installare il modulo npm canvas con le seguenti istruzioni di costruzione: https://github.com/Automattic/node-canvas/wiki/Installation---Windows Ho C: \ libjpeg-turbo \ come è menzionato nel manuale. Se faccio:Come abilitare il supporto jpeg su node-canvas su x64 windows con il compilatore MSVC10?

npm installare tela

allora questo pezzo di codice non viene avviato onload:

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

(funziona con i dati .png). Se si specifica --with-jpeg nella mia riga di comando, MSVC si lamenta della mancanza di libjpeg.h. Subito dopo questo npm cancella il file con il progetto msvc, quindi non riesco a impostare i percorsi da solo (è possibile disattivare questa pulizia?)

Quindi, come posso costruire canvas per Windows con supporto jpeg? Domande trovate ma nessuna risposta riguardo questo argomento in rete.

risposta

0

Mi sembra come binding.gyp manca una direttiva 'include_dirs' alla riga # 143 in modo che il compilatore possa trovare libjpeg.h nella directory C: \ libjpeg-turbo \. Prova a inserire:

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

Installa MSVC10 e nodejs a 64 bit. Quando la build non riesce, utilizzare i seguenti distributives, che troverai in rete:

  • decomprimere gtk + -bundle_2.22.1-20101229_win64.zip in c:/gtk. Utilizzare questa versione , altri non per me

  • configurazione libjpeg-turbo-1.4.0-vc64.exe a C: \ libjpeg-turbo (librerie a 32 bit fallirebbe senza alcun messaggio meaningfull)

  • vai a il . \ node_modules \ canvas \ build \ e modifica il tuo binding.gyp. Aggiungere 'variabili':
{ 
    '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' 
    } 

e anche

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

poi Exec seguenti comandi nella cartella in cui si trova il file .gyp:

nodo-gyp configurare

nod e-gyp costruire

librerie IMHO per tali moduli dovrebbe essere incluso come parte delle distribuzioni NPM, la sua strana aspettarsi competenza Win32/C++ da programmatore nodejs ...

Problemi correlati