Est-ce que quelqu'un a de l'expérience avec l'une de ces bibliothèques node.js ou les deux? Curieux d'entendre le succès ou les difficultés avec chacun.node-o3-canvas vs. node-canvas?
Répondre
LearnBoost est l'un des développeurs de modules de nœuds les plus prolifiques de la communauté et pour cette raison je suis allé avec node-canvas sur node-o3-canvas. J'ai utilisé node-canvas pour découper une image en carreaux sur le serveur et les renvoyer au client. Tout fonctionne comme vous l'attendriez. Voici un exemple du genre de code que vous pouvez écrire:
helper = function(x, y, canvas) {
return function(err, str) {
if (!tiles[x]) {
tiles[x] = [];
}
tiles[x][y] = {
data: str
, buffer: canvas.toBuffer()
, covered: true
};
};
};
for (y = 0; y < tilesPerColumn; y += 1) {
for (x = 0; x < tilesPerRow; x += 1) {
//Create a new tile canvas each time so they don't run over each other
tCanvas = new Canvas(chunkSize, chunkSize);
tCtx = tCanvas.getContext('2d');
xOffSet = chunkSize * x;
yOffSet = chunkSize * y;
//Save a set of uncovered tiles to store in memory
tCtx.drawImage(img, xOffSet, yOffSet, chunkSize, chunkSize, 0, 0, chunkSize, chunkSize);
tCanvas.toDataURL(helper(x, y, tCanvas));
}
}
Les seuls gotchas je FURENT:
- Si vous utilisez les méthodes de Async nœud toile, vous devez être prudent allouer de nouvelles instances de canvas/context pour ne pas en interrompre une qui pourrait écrire/dessiner.
- Pour une raison quelconque, je n'ai jamais pu obtenir l'objet Image() de node-canvas pour fonctionner correctement lors de l'utilisation d'images codées en base64 côté serveur. Mon problème était que l'événement onLoad ne se déclenche pas lorsque la propriété src a été affectée à une chaîne base64. Je n'ai pas passé trop de temps à lutter contre cela, et plutôt écrit les images sur des fichiers temporaires pour contourner le problème.
Il est aussi basé sur Cairo, qui est un PITA pour traiter les non-VPS/Serveurs possédés. – Alan
Avez-vous de la chance d'installer Cairo sur un non-VPS? Je regarde Heroku en ce moment mais je ne veux pas perdre mon temps si ce n'est pas possible. Je ne veux vraiment pas rouler le mien si possible. – Chris
Il y a un [buildpack Heroku pour Cairo] (https://github.com/mojodna/heroku-buildpack-cairo). Je ne l'ai pas personnellement utilisé, donc je ne peux pas encore dire si ça marche ou pas. – Brandon
- 1. TagSoup vs Jsoup vs HTML Parser vs vs HotSax
- 2. Accumuler vs plier vs réduire vs compresser
- 3. RailwayJS vs Geddy vs Express vs Socket.IO
- 4. Rhino simulé vs Typemock vs JustMock vs
- 5. codendi vs redmine vs Retrospectiva vs trac
- 6. ZeroMQ vs vs Node.js beanstalkd vs Twisted
- 7. control.BeginInvoke() Vs Dispatcher Vs SynchronizationContext Vs. .. - FIABILITÉ
- 8. inline vs __inline vs __inline__ vs __forceinline?
- 9. méthode vs fonction vs procédure vs classe?
- 10. Location vs GeoPoint vs 1E6 vs Charging
- 11. Papier VS Chevalet VS Tissu vs Kinetic
- 12. et vs * et | vs +
- 13. MPAPI vs MPI.NET vs?
- 14. Mathematica: Unevaluated vs Différer vs vs attente HoldForm vs vs HoldAllComplete etc etc
- 15. .c vs .cc vs vs Cpp .hpp vs vs .h .cxx
- 16. InsertionSort vs InsertionSort vs BinaryInsertionSort
- 17. Modèle vs ControlTemplate vs DataTemplate
- 18. Application vs Service vs Intent
- 19. Boolean vs. Enum vs. Flag
- 20. QT vs wxwidget vs MFC
- 21. Tables vs Div vs Spains
- 22. IPSec vs OpenSSL vs PGP
- 23. cudaStreamSynchronize vs CudaDeviceSynchronize vs cudaThreadSynchronize
- 24. Async vs Handler vs IntentService
- 25. int vs NSNumber vs NSInteger
- 26. Liste vs DataTable vs DataSet
- 27. WsHttpBinding VS WS2007HttpBinding VS WSDualHttpBinding ..?
- 28. CURL vs fopen vs fsocketopen?
- 29. Matlab vs Aforge vs OpenCV
- 30. Hadoop Vs. Disco Vs. Condor?
Il existe à la fois des auteurs réputés. Il semble que 'node-canvas' a eu des commits plus récents et cela le rendra plus probable dans le futur avec les nouvelles versions de node.js – Raynos