Soru Node.js için görüntü kırpma yapmak için hangi paketler kullanılabilir? [kapalı]


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ı?


32
2017-12-27 19:47


Menşei


Bu, daha az öznel olduğu düşünülebilir. "En iyisi nedir ..." soruları genellikle yararlı değildir. - zzzzBov


Cevaplar:


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


26
2017-12-27 19:55



Düğüm-imagemagick kitaplığı bir çekicilik gibi çalışır - Travis
Windows üzerinde child_process eksikliği nedeniyle şu anda Windows üzerinde çalışmıyor gibi görünüyor :( - Sebastian Patten
Ayrıca, imagemagick veya graphicsmagick ile çalışan checkout gm. Mükemmel bir zincirlenebilir API'ye sahiptir ve aktif olarak desteklenmektedir. github.com/aheckmann/gm Yeni bir cevap ekledim, ancak bu soru kapatıldığından beri yapamam. - Lance Fisher
Güzel buggy kütüphanesi. - highmaintenance


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


19
2018-06-24 18:33



IMagick ile daha iyi sonuçlar elde edilebilir. resizeImage(), kullanmak imagick::FILTER_LANCZOS filtre (gelişmiş yeniden örnekleme algoritması) ve keskinleştirme yaklaşık 0,9'a ayarlanmıştır. - Benji XVI


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


5
2017-10-20 17:01





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!


4
2017-12-27 21:38