[英]How to enable jpeg support in node-canvas on x64 windows with MSVC10 compiler?
我需要在nodejs服务器端渲染jpeg图像。 我按照以下构建说明安装canvas npm模块: https : //github.com/Automattic/node-canvas/wiki/Installation---Windows我有C:\\ libjpeg-turbo \\,如手册中所述。 如果我做:
npm安装画布
那么这段代码就不会启动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支持的Windows构建画布呢? 在网上发现有关此主题的问题,但没有答案。
安装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构建
此类模块的IMHO库应作为npm发行版的一部分包含在内,奇怪的是期望来自nodejs程序员的WIN32 / C ++专业知识...
在我看来,binding.gyp在第143行缺少'include_dirs'指令,因此编译器可以在C:\\ libjpeg-turbo \\目录中找到libjpeg.h。 尝试插入:
'include_dirs': [
'c:/libjpeg-turbo',
],
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.