Installation nodeJs sur Ubuntu 12.04 et utilisation de camanjs

Dans notre recherche de développement de nouveaux services pour l’imprimerie en ligne Easyflyer, nous travaillons sur la mise en place d’un outil permettant d’appliquer des effets coté serveur avec la librairie camanJs. Caman est une librairie très étendue permettant la manipulation d’image, notamment l’application de filtres comme c’est le cas dans les outils d’édition. La librairie est entierement compatible que ce soit pour une exécution coté navigateur, ou une exécution coté serveur en utilisant nodeJs.

Voici quelques étapes pour l’installation des éléments nécessaires et des modifications de fichiers sources qui ont été indispensable pour mener à bien l’opération. La procédure est basée sur une distribution Ubuntu Server 12.04.

I. Installation de nodeJs sur le serveur

L’installation se fait en utilisant apt-get :

sudo apt-get install python-software-properties
sudo apt-add-repository ppa:chris-lea?node.js
sudo apt-get update
sudo apt-get install nodejs npm

Les 2 paquets installés sont nodeJs, le moteur d’éxécution javascript et npm, le gestionnaire de package d’installation nodeJs.

II. Installation des librairies nécesssaires à l’exécution des modules camanJs

Pour installer le module de manipulation du canvas (stream HTML5 coté serveur), il faut disposer des librairies jpeg

sudo apt-get install libcairo2-dev libjpeg8-dev # Librairie nécessaire
sudo apt-get install nodejs-dev # indispensable pour utiliser node-waf
npm install canvas

apt-get install build-essential

Installation du module caman :

npm install caman -g

III. Correction du bug dans le fonctionnement de Camanjs

Normalement à ce stade, à chaque fois qu’on essaye d’appliquer un effet avec la librairie camanjs, on obtient une erreur. Pour la corriger, il faut modifier la source du module et le recompiler :

Dans le module canvas :

node-canvas?src?closure.h

Mettre en commentaire la ligne suivante :

void closure_destroy(closure_t *closure) {
  if (closure->len) {
    free(closure->data);
   // Mettre en commentaire V8::AdjustAmountOfExternalAllocatedMemory(-closure->max_len);
  }
}

Relancer la compilation du module

npm rebuild <nom_du_module>

 IV Exemple d’utilisation de camanjs

Un petit d’exemple d’utilisation de la librairie, celui-ci permet d’appliquer des effets pour changer le rendu. Dans l’exemple le rendu est un effet « vintage ». Toutes les possiblités de manipulation sont disponible ici.

var Caman;

Caman = require('caman').Caman;

fs = require("fs");
Caman("?home?nodejs?DSC07802.JPG", function() {
   this.greyscale();
   this.contrast(5);
   this.noise(3);
   this.sepia(100);
   this.channels({
   red: 8,
   blue: 2,
   green: 4
 });
  this.gamma(0.87);

  this.render(function () {
  this.save("?home?nodejs?DSC07802.JPG.png");
});

});

 

Installation nodeJs sur Ubuntu 12.04 et utilisation de camanjs

1 Comment

  1. Mathieu

    4 mars 2014 - 9 h 03 min
    Reply

    Sur ubuntu 13.04 ajouter l’installation des packages suivants avant la compilation de canvas :
    apt-get install libpango1.0-dev libgif-dev build-essential g++

Leave a Reply

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.