Senin bilmediğin bir şey biliyorum: hafif bir görüntü işlemcisi



  1. Senin bilmediğin bir şey biliyorum: hafif bir görüntü işlemcisi

Node.js görüntü işleme modüllerinin çoğunun dezavantajı, bunların yalnızca mevcut araçların sarmalayıcıları olmaları ve bu nedenle ek kurulum gerektirmeleridir. Ancak her zaman bu tür bağımlılıklara sahip olmak istemezsiniz. LWIP’in devreye girdiği yer burasıdır.


Yeni makale serisi


“Bilmediğin Bir Şey Biliyorum”, Golo Roden ve Philip Ackermann’ın ortak dizisidir ve bu dizide ikisi düzenli olarak JavaScript ve Node.js için modüller sunar.







Görüntü işleme için bir dizi Node.js modülü vardır. Bununla birlikte, çoğu durumda dezavantajı, bu modüllerin ImageMagick veya GraphicsMagick gibi mevcut araçların etrafına sarmalayıcı olmaları ve bu nedenle ilgili araçların yüklenmesini gerektirmesidir (node-imagemagick ve gm modülleri burada iki örnektir). Ancak her zaman bu tür bağımlılıklara sahip olmak istemezsiniz.

Hafif görüntü düzenleme


LWIP modülünün (“Hafif Görüntü İşlemcisi” için) devreye girdiği yer burasıdır, çünkü bu modül hiçbir harici araç gerektirmez ve bu nedenle farklı işletim sistemlerinde “kutudan çıkar çıkmaz” (Node.js’nin kurulu olması koşuluyla) nispeten kolay bir şekilde kullanılabilir. Kullanılacak sistem ortamları. Modül, komut kullanılarak her zamanki gibi kurulur. npm lwip’i kurayrıca her zamanki gibi Node.js modüllerine dahil edilmiştir. istek(‘lwip’).

Yöntem daha sonra görüntü düzenleme için giriş noktası sağlar. açmak(). Karşılık gelen görüntü dosyasına (veya doğrudan bir görüntü arabelleğine) giden yol ve görüntü nesnesine erişim sağlayan bir geri çağırma işlevi sağlanır. Bunun üzerine görüntünün çeşitli dönüşümlerini ve filtrelerini çağırabilir ve ilgili değişiklikleri yapabilirsiniz. dosya yaz() kaydetmek. Örneğin, bir görüntüyü 200×200 piksele ölçekleyen bir komut dosyası aşağıdaki listeyi gösterir:

var lwip = require('lwip');
lwip.open('img/example.png', function (error, image) {
if (error) {
throw error;
}
image.resize(200, 200, function (error, resultImage) {
resultImage.writeFile('img/example-resize.png', function (error) {
if (error) {
throw error;
}
});
});
});
Çeşitli görüntü işlemleri


Genel olarak, modül aşağıdaki listeden de görülebileceği gibi en önemli görüntü işlemlerini sağlar. Bu, örneğin, yukarıdaki listede gösterildiği gibi görüntü boyutunu ayarlamayı, aynı zamanda ölçeklemeyi, döndürmeyi, kırpmayı ve yansıtmayı içerir. Kalemtıraş veya Gauss bulanıklığı gibi filtreler de mevcuttur.


  • ölçekleme: image.resize(genişlik, yükseklik, ara, geri çağırma)
  • ölçekleme: image.scale(wRatio, hRatio, inter, geri çağırma)
  • Döndürme: image.rotate(derece, renk, geri aramalar)
  • Koordinasyonlu Kırpma: image.crop(sol, üst, sağ, alt, geri arama)
  • Resmin ortasından kırpın: image.crop(genişlik, yükseklik, belirtme çizgisi)
  • Gauss Bulanıklığı: image.blur(sigma, geri çağırma)
  • Kalemtraş: image.sharpen(genişlik, geri arama)
  • Yansıtmak: image.mirror(eksenler, geri aramalar)
  • Doyma: image.saturate(delta, dezavantaj)
  • Parlaklık: image.lighten(delta, parlama) Ve image.darken(delta, geri arama)
  • renk tonu: image.hue(kaydırma, geri arama)
  • şeffaflık: image.fade(delta, geri arama)
toplu işlemler


Yukarıdaki çağrılara alternatif olarak, çeşitli yöntemler de toplu işlem olarak bağlanabilir veya yürütülebilir. Bunu yapmak için, aşağıdaki listede gösterilen yöntemi çağırmanız yeterlidir. pay() ve daha sonra, Fluent API’sinden her zamanki gibi, çeşitli yöntem çağrılarını birbiri ardına açık bir şekilde hizalayabilir.

require('lwip').open('img/example.png', function (error, image) {
if (error) {
throw error;
}
image.batch()
.scale(0.75) // Skalierung auf 75%
.rotate(45) // Rotation um 45 Grad im Uhrzeigersinn
.crop(50, 50) // Zuschnitt auf 50 x 50 Pixel ausgehend von Bildmitte
.blur(5) // Gaußscher Weichzeichner
.writeFile('img/example-batch.png', function (error) {
});
});
Çözüm


LWIP modülü, ImageMagick ve GraphicsMagick gibi görüntü işleme araçlarına veya bunlar için mevcut sarmalayıcı modüllere hafif bir alternatif oluşturur. Standart işlemlere ek olarak, LWIP ile keskinleştirme veya Gauss bulanıklığı gibi filtreleri kullanabilir veya tek tek pikselleri doğrudan düzenleyebilirsiniz. Bu arada, yaygın kullanılan resim biçimleri PNG, GIF ve JPEG desteklenmektedir.


()



Haberin Sonu
 
Üst