我需要在nodejs服务器端渲染jpeg图像。 我使用以下构build指令安装canvas npm模块: https : //github.com/Automattic/node-canvas/wiki/Installation—Windows我有C:\ libjpeg-turbo \,因为它在手册中提到过。 如果我做:
npm安装canvas
那么这段代码不会启动onload:
var data = fs.readFileSync("./t.jpg"); var img = new Image(); img.onload = function () { console.log("onload"); }; img.src = data;
(它与.png数据一起使用)。 如果我在我的命令行中指定–with-jpeg,那么MSVC会抱怨缺lesslibjpeg.h。 在此之后npm用msvc项目删除文件,所以我无法自己设置path(是否可以closures此清理?)
那么,如何用jpeg支持为窗口创buildcanvas? 发现问题,但在networking上没有关于这个话题的答案。
看起来像bind.gyp在#143行缺少'include_dirs'指令,因此编译器可以在C:\ libjpeg-turbo \目录下找到libjpeg.h。 尝试插入:
'include_dirs': [ 'c:/libjpeg-turbo', ],
安装MSVC10和64位nodejs。 当你的构建失败时,使用下面的分配,你可以在网上找到:
解压缩gtk + -bundle_2.22.1-20101229_win64.zip到c:/ gtk。 使用这个版本,其他人失败了
将libjpeg-turbo-1.4.0-vc64.exe设置为C:\ libjpeg-turbo(32位库将失败并且没有任何有意义的消息)
{ '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文件所在的文件夹中:
node-gyp配置
node-gyp构建
恕我直言,这些模块的库应该被纳入npm发行版的一部分,奇怪的期望来自nodejs程序员的WIN32 / C ++专业知识…