Node.js. kullanarak bir web sitesi oluşturuyorum. Birçok kütüphanenin imagemagick'in üstüne geri döndüğünden bahsediyorum. Burada bir liste var: https://github.com/ry/node/wiki/modules#graphics
Yapmaya çalıştığım şey, kullanıcının yüklediği görüntüyü, sitenin gerektirdiği belirli boyutlara yüklemesi / boyutlandırmasıdır. Bunu yapmak için en iyi / en aktif komut nedir? Npm desteği ile birini istiyorum. Bunlardan bazılarını kullanan gerçek deneyime sahip olan var mı?
Bunu gayet iyi idare edebilecek iyi bir imagemagick sarıcı buldum. Dosyayı diske yazmadan önce bile bellekte. (aka kullanıcı yükleme -> node imagemagick lib -> cdn ve diske asla dokunma ... istediğim şey)
https://github.com/rsms/node-imagemagick
Canvas ve ImageMagick arasında karar vermeye çalışan herkes için, hem karşılaştırma için denedim hem de imagemagick'ten daha iyi sonuçlar alıyorum. İşte yeniden boyutlandırılan ve 1024x768'den 128x128'e kırpılan bir görüntü:
http://i.imgur.com/tfeft.png
Resimleriniz üzerinde çizim yapabilmeniz ya da etki yapabilmeniz gerekiyorsa, belki de tuval veya ImageMagick'e ihtiyacınız olacaktır, ancak hız ve bellek kullanımı açısından birkaç daha iyi seçenek vardır.
İşte birkaç farklı görüntü kütüphanesinin bir ölçütüdür.
http://www.vips.ecs.soton.ac.uk/index.php?title=Speed_and_Memory_Use
ImageMagick yavaş ve çok fazla bellek tüketiyor. Vips'i Deneyin
https://github.com/dosx/node-vips
LearnBoost milletlerinden node-canvas kullandım - https://github.com/learnboost/node-canvas veya
npm install canvas - Sorunlara çok duyarlılar ve kütüphane iyi yazılmış ve kararlı. Hafızasından bir görüntü yaratabileceğinizi düşünmüyorum ama eğer node-imagemagick sizin için çalışmazsa, denemeye değer.
Tarayıcı tarafı tuval API'sine aşina iseniz, bir dosyadan bir görüntü oluşturmak ve daha küçük bir tuvale çekmek için düz ileri doğru olmalıdır. Burada bunun bir örneği var:
https://github.com/LearnBoost/node-canvas/blob/master/examples/resize.js
C ++ ile aşinaysanız, yerli nesnelere yöntem eklemek oldukça kolaydır, proje Mac OS'de ilk defa benim için temiz bir şekilde oluşturulmuştur. Düğüm tuvalini destekleyen grafik kütüphanesi cairo için de oldukça açık. Bir Node Buffer'dan yüklenecek bir yol olup olmadığını görmek için Image nesnesinin yükleme işlevlerine bir göz atacağım:
https://github.com/LearnBoost/node-canvas/blob/master/src/Image.h
https://github.com/LearnBoost/node-canvas/blob/master/src/Image.cc
İyi şanslar!