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");
});
});


10 Comments
Mathieu
4 mars 2014 - 9 h 03 minSur 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++
real money pokies android
4 septembre 2026 - 19 h 50 minReferences:
Pokies app real money real money pokies android
online pokies payid australia
6 septembre 2026 - 11 h 05 minReferences:
Highest paying payid pokies australia online pokies payid australia
payid pokies no deposit bonus
6 septembre 2026 - 12 h 32 minReferences:
Payid pokies real money payid pokies no deposit bonus
cantrell-clemmensen-2.federatedjournals.com
9 septembre 2026 - 15 h 23 minReferences:
Fast withdrawal pokies australia payid https://cantrell-clemmensen-2.federatedjournals.com/online-casino-echtgeld-2026-beste-anbieter-im-vergleich
http://09vodostok.ru/
9 septembre 2026 - 16 h 18 minReferences:
5 minimum deposit pokies payid http://09vodostok.ru/
how to play pokies with payid
9 septembre 2026 - 20 h 20 minReferences:
Payid withdrawal online pokies http://09vodostok.ru/user/potkitten0/
zapchastimoto
9 septembre 2026 - 21 h 44 minКаталог широкий: запчасти есть и на дорожные мотоциклы, и на кроссовые. Мотозапчасти беру там, где на каждую деталь есть и оригинал, и вменяемый аналог. Искать деталь лучше через фильтр по модели, а не по картинке. Экономия на мелочах вышла приличная, для скутера набрал всё за один раз. В чат скинул номер детали, ответили быстро и уточнили модель мотоцикла. Мне нравится, что статус заказа виден в кабинете и никого не надо дёргать. Понравилось, что с отправкой не тянут и трек скидывают сразу после сборки заказа. Возврат оформили без скандала, хотя ошибся с выбором я сам. Ссылка на моторасходники давно лежит в закладках — так подбирать привычнее. Масло меняю по регламенту, а не тогда, когда мотор начинает подозрительно шуметь.
https://truckwiki.site/wiki/Trustly_Online_Casinos_Die_besten_Casinos_mit_Trustly
11 septembre 2026 - 22 h 25 minReferences:
Free spins payid pokies australia https://truckwiki.site/wiki/Trustly_Online_Casinos_Die_besten_Casinos_mit_Trustly
free payid pokies
12 septembre 2026 - 0 h 39 minReferences:
Mobile pokies payid https://guzhen0552.cn/home.php?mod=space&uid=2489361