пытаясь получить доступ к изображениям и манипулировать ими с помощью node.js и GD или imagemagick - PullRequest
0 голосов
/ 11 августа 2011

Я пытаюсь создать эскиз 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 ...");
    }
});

logs: не удалось открыть файл ...

ImageMagick:

var im = require('imagemagick');
im.identify('./test.jpeg', function (err, features) {
  if (err) throw err;
  console.log(features);
});

logs: Ошибка: Команда не выполнена: execvp (): Нет такого файла или каталога

но файл test.jpeg определенно есть.

var fs = require('fs');
fs.open(filePath, 'r', function (err, fd) {
    console.log("open file ... " + err + " " + fd);
});

отлично работает !? ошибка не регистрируется.

Я попробовал chmod 0777 на JPEG. нет ничего.

1 Ответ

2 голосов
/ 11 августа 2011

Из того, что я понимаю из документации модуля imagemagick для узла, является то, что модуль обеспечивает доступ к двоичным файлам командной строки imagemagick.У вас установлен imagemagick (двоичные файлы командной строки)?Они находятся в PATH вашей оболочки?

Вы ищете бинарный файл с именем «identifier».Вы можете показать путь к нему, запустив «, которые идентифицируют».Он должен дать вам полный путь - если приглашение только что вернулось, у вас его не установлено или его нет в вашем пути.

Если вы используете win32, какая команда не поможет, вам придетсяпроверьте наличие бинарного файла identif.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

Итак, модуль узла и ваш код работают на меня.

...