2012-11-02 26 views
5

Bir web dizisi aracılığıyla base64'te kodlanmış görüntüleri alan bir nodejs sunucum var. Bu görüntüler üzerinde görüntü manipülasyonu yapmak ve geri göndermek istiyorum. Bunu yapmamda bana yardımcı olacak bir kütüphane bulmak için biraz araştırma yaptım, ancak bulabildiğim her şey, sunucu tarafında saklanan görüntüleri alıp manipülasyonu yapan ve görüntüyü geri saklayan kütüphanelerdi. Görünüşe göre, hepsi, görüntünün dosya adını içeren bir dizgi olarak giriyorlar, bu yüzden kapağın altında, görüntüyü bir dosya akışı aracılığıyla el ile aldıklarını tahmin ediyorum.Base64 görüntü verisi ile NodeJS'de görüntü işleme

Sorum şu ki, doğrudan base64 verileri üzerinde çalışmamda yardımcı olabilecek bir kütüphane var mı (yani, verileri işlevlere girdi olarak aktarıyor) veya sunucudaki her görüntüyü kaydetmem, değiştirmem ve gönder geri mi Sonuncusuyla gitmemi tercih ederim çünkü yüksek performanslı bir uygulama üzerinde çalışıyorum ve tüm bu tasarruf/yüklemeler döngüsel bir israfa yol açıyor. Aksi takdirde, bunu başarabilmem için başka bir yol görüyor musunuz (örneğin, görüntü dosyasını kaydetmeden ve geri yüklerken, örneğin)?

Teşekkürler.

cevap

2

Buffer s ile çalışın.

var img = new Buffer(img_string, 'base64'); 
// Work with your images like other tutorials do. 
+0

Bunun işe yaramayacağından emin değilim, kütüphaneler görünüşe göre bir dosya adını işlevlerine girdi olarak beklerler, bu yüzden bir filestream açıyorlar ve görüntüyü el ile getiriyorlar. Bunu bir şekilde deneyeceğim. Teşekkürler! – Masiar

+0

@Masiar kütüphanelerin sahnelerin arkasındaki Tamponlarla çalışması gerekiyor. Dosyayı bir Tampon olarak açmak için bir dosya yoluna ihtiyaç duyabilirler, ama hepsi Buffers :-) 'a gider. :-) –

+0

Kesinlikle katılıyorum :)! Ancak API, ne tür bir girişin beklediği konusunda nettir. Giriş kaynağının bir arabellek olabileceğini bir an deneyeceğim. Eğer durum buysa, o zaman sen benim günümü yaptın. Aksi takdirde iyi deneyin. En kısa zamanda size haber vereceğim. – Masiar

0

Bu seferki "okunabilir akışları" çalışabilirsiniz: https://github.com/aheckmann/gm

Benioku'da örneklerin ikinci setini bakın.

+0

İyi görünüyor. Sorun şu ki bir base64'den bir ReadableStream oluşturamıyorum64 Biçim: @Florian'ın yaptığı gibi bir Buffer'a dönüştürebilirdi, ancak kabul edilen tek format ReadableStream'tir. – Masiar

İlgili konular