我正在尝试创建驻留在服务器上的jpg的缩略图。我尝试使用node-gd和/或node-imagemagick,但两者都无法访问该文件:
var gd = require('node-gd');
gd.openJpeg("./test.jpeg", function (img, path) {
if (img) {
console.log("file opened ... " + img);
}
else {
console.log("failed to open file ...");
}
});日志:无法打开文件...
imagemagick:
var im = require('imagemagick');
im.identify('./test.jpeg', function (err, features) {
if (err) throw err;
console.log(features);
});日志:错误:命令失败: execvp():没有这样的文件或目录
但是test.jpeg文件肯定在那里。
var fs = require('fs');
fs.open(filePath, 'r', function (err, fd) {
console.log("open file ... " + err + " " + fd);
});工作正常!?未记录任何错误。
我在jpeg上尝试了chmod 0777。没什么。
发布于 2011-08-11 06:35:19
根据我对node的imagemagick模块文档的了解,该模块提供了对imagemagick的comandline二进制文件的访问。您是否安装了imagemagick (命令行二进制文件)?他们在你的shell的路径上吗?
您正在寻找一个名为"identify“的二进制文件。你可以通过运行"which identify“来显示它的路径。它应该给你一个完整的路径-如果提示只是返回,你没有安装它或它不在你的路径中。
如果您使用的是win32,则必须检查名为identify.exe的二进制文件。
(从未与gd一起工作过-所以我不确定)
以下是您的代码的imagemagick示例-请注意,在您的环境中识别的路径可能会有所不同:
snowflake:Desktop rhaen$ node check_im.js
{ format: 'JPEG', width: 320, height: 250, depth: 8 }
snowflake:Desktop rhaen$ which identify
/usr/local/bin/identify所以-节点模块和你的代码为我工作。
https://stackoverflow.com/questions/7018181
复制相似问题