2012-11-11 19 views
3

我有一對夫婦與節點ImageMagick的問題。在某些圖像上傳我得到這個錯誤:捕獲ImageMagick的錯誤 - 節點崩潰

/node_modules/imagemagick/imagemagick.js:126 
    prop[comps[0].trim().toLowerCase()] = comps[1].trim() 

TypeError: Cannot set property '20' of undefined 

任何想法是什麼意思?有些圖像可以正常工作,其他圖像可以。在這種情況下,它是一個名爲「icon_75.png」的PNG圖像 - 其他PNG工作正常,都是通過相同的過程創建的。

這似乎是解析圖像信息,其中包括了一堆的直方圖號線 - 似乎是合法的信息。

' Histogram:', 
'  973: (107,108, 52) #6B6C34 srgb(107,108,52)', 
'  70: (108,105, 55) #6C6937 srgb(108,105,55)', 
'   2: (110,107, 58) #6E6B3A srgb(110,107,58)', 
'   2: (112,109, 60) #706D3C srgb(112,109,60)', 
'   1: (114,111, 63) #726F3F srgb(114,111,63)', 
'   1: (115,113, 65) #737141 srgb(115,113,65)', 
'  14: (116,117, 64) #747540 srgb(116,117,64)', 
'   1: (117,114, 68) #757244 srgb(117,114,68)', 
'   1: (120,117, 71) #787547 srgb(120,117,71)', 
'   1: (121,119, 73) #797749 srgb(121,119,73)', 
'  18: (124,121, 76) #7C794C srgb(124,121,76)', 
'   6: (125,126, 77) #7D7E4D srgb(125,126,77)', 
'   2: (130,127, 85) #827F55 srgb(130,127,85)', 
'  20: (134,135, 89) #868759 srgb(134,135,89)', 

我更重要的問題是如何避免崩潰。我試圖在一個catch塊中封裝裁剪調用,但這不起作用。有關如何防止我的應用程序停機的任何建議?

try { 
    imageMagick.crop({ 
    width: opts.width, 
    height: opts.height, 
    srcPath: this.uploadDir + "/" + that.name, 
    dstPath: this.uploadDir + "/" + version + "_" + that.name 
    }, function(err, stdout, stderr) { 
    if(err) 
     console.log(err) 
    else { 
     console.log('Creating ' + version); 
     ... 
    } 
    }); 
} 
catch(e) { 
    console.log('Whao'); 
} 
+0

我有同樣的'不能設置property'錯誤...也非常渴望知道它是什麼。 – enyo

+0

我也遇到過這個問題。物業編號改變,但似乎總是這條線。 '/var/www/project/node_modules/imagemagick/imagemagick.js:126 丙[譜曲[0] .trim()toLowerCase()] =譜曲[1] .trim() ^ 類型錯誤:無法設置屬性'82'未定義' – RevNoah

+0

請看看我標記的答案 - 您的imagemagick代碼需要修補,直到它固定上游 – cyberwombat

回答

1

所以看起來在ImageMagick的某些版本中識別輸出已經改變了。它的輸出中還有一個可能的錯誤。

我已經提交了ImageMagick的錯誤在這裏:http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=22256

這裏https://github.com/rsms/node-imagemagick/issues/67

由於這種在任這麼寫,沒有回答節點ImageMagick的錯誤我接着提出了修復。

您將需要編輯node_modules/ImageMagick的/ imagemagick.js文件並查找parseIdentify功能 - 評出來,並用這一個:https://gist.github.com/4066782