[英]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.