2013-04-30 33 views
10

Ben Görüntü üzerinde farklı bir etki uygulamak için nasıl bir fikrin sahip değilim,Sepya, siyah beyaz, bulanıklaştırma vb. Gibi bitmap üzerine farklı görüntü efektleri (filtreleri) nasıl uygulanır?

Ben etkisi sınıfında EffectFactory sınıf ve Effect sınıf bir yöntem apply yoktur gördük ama inputTexId geçmek emin değilim ve optputTexId ve güncelleştirilmiş görüntüyü nereden aldığımdan, imageView,

'da saklamak için lütfen bu soruna nasıl yardımcı olacağınız konusunda bana yardımcı olun. Görüntü üzerinde efektler sağlamak için kullanılabilir herhangi bir açık kaynak kütüphanesi var mı.

sayesinde

cevap

8

Jerry's Java Image Processing Library'u uygulamıyorum. Benim için iyi çalışıyor.

AndroidJars.

Düzenleme

Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher); 
//Find the bitmap's width height 
int width = AndroidUtils.getBitmapOfWidth(getResources(), R.drawable.ic_launcher); 
int height = AndroidUtils.getBitmapOfHeight(getResources(), R.drawable.ic_launcher); 
//Create a filter object. 
GaussianFilter filter = new GaussianFilter(); 
//set???? function to specify the various settings. 
filter.setRadius(8.5f); 
//Change int Array into a bitmap 
int[] src = AndroidUtils.bitmapToIntArray(bitmap); 
//Applies a filter. 
filter.filter(src, width, height); 
//Change the Bitmap int Array (Supports only ARGB_8888) 
Bitmap dstBitmap = Bitmap.createBitmap(src, width, height, Config.ARGB_8888); 

Sen Catalano Framework kullanabilirsiniz Android-jhlabs

+0

java yönelimli uygulamada veya android uygulamasında uygulandı – blackjack

+0

Android için arkadaşım, henüz java tabanlı uygulamada değil.Onlar "tamsayı dizisi" üzerinde işlem yapıyorlar. Kötü haber kütüphanenin özellikle android için. Ama yine de java dosyalarından mantık getirebiliriz. –

+0

Bu lib'in bitmap ile nasıl kullanılacağını gösteren bir örnek verebilir misiniz? – Singhak

5

Evet, kuşhane sdk kullanarak birçok efektler kullanabilir ..

sen Bunlar en iyisidir .. OpenCV kullanabilirsiniz Daha gelişmiş efektler için ziyaret http://www.aviary.com/android

..

+0

Etkileri nasıl uygulayacağınıza dair küçük bir örnek verebilir misiniz? Şimdiden teşekkürler. Mutlu Noeller. – San

+0

@Sujith, aviary'yi nasıl uygulayacağını açıklayabilir – Erum

6

daha detaylı bilgi için;

http://code.google.com/p/catalano-framework/

FastBitmap image = new FastBitmap(bitmap); 
image.toRGB(); 

//Sepia 
Sepia sepia = new Sepia(); 
sepia.applyInPlace(image); 

//Blur 
Blur blur = new Blur(); 
blur.applyInPlace(image); 

//Emboss 
Emboss emboss = new Emboss(); 
emboss.applyInPlace(image); 

//Retrieve bitmap 
bitmap = fb.toBitmap(); 
+0

Çerçevenizin performansı nasıl? Bazı görüntü filtrelerini test etmeye başladım ve denediğim bir filtre türü için https://code.google.com/p/android-jhlabs/ adresini kullanarak oldukça kötü bir performans gösterdim. – Liron

+0

Kullandığınız filtreye göre değişir. GaussianFilter örneğin JHLABS'de Ayrı Gaussian kullanılmalıdır, bu yüzden Catalano Framework'de GaussianBlur çok daha hızlıdır çünkü aynı noktada her iki yönü de kullanın. Ama ben Catalano Framework, AForge.NET ve Accord.NET ile kıyaslama test ettim, Catalano Framework bazı filtreler AForge.NET ve tersi vardır. Sürüm 1.2, paralel işlem için yeni özellikler ile geliyor. Sadece Catalano.Imaging.Filters dosyasını Catalano.Imaging.Concurrent.Filters dizinine değiştirmeniz gerekiyor. Bizi izlemeye devam edin ! –

+0

Bu konuda ETA nedir? – Liron

1

Bu, gradle ile entegre etmek kolay, Hızlı It ve verimli ve kaydedilmiş mükemmel Kütüphanesi benim gün:

Transformation trans1 = new ContrastFilterTransformation(getActivity(), 1.5f); 
         Transformation trans2 = new BrightnessFilterTransformation(getActivity(), 0.2f); 
         Picasso.with(getActivity()).load(uri) 
           .transform(trans1).transform(trans2).into(imageview3); 
2

: Bu o yaramaz bir örnek

https://github.com/wasabeef/picasso-transformations

olduğunu

-: Ayrıca bu Bitmap Processing

Filtreler bir dizi işlemek this projeyi deneyebilirsiniz

  • Boost-up Renkler
  • Parlaklık
  • Renk Derinliği
  • Renk Filtresi
  • Kontrast
  • Kabartma
  • Ayaklı ve Rotasyon
  • Gama
  • Gauss Bulanıklığı
  • Griskala
  • Hue
  • ters çevir
  • Gürültü
  • Doygunluk
  • Sepya
  • Keskinleştirme
  • Kroki
  • Ton
  • Vignette

o Java ve doe olduğu için s piksel etiket işleme, orada en C++ tabanlı kütüphane kadar hızlı değil ama bitmap boyutu çok büyük değil, örneğin küçük resimler, eğer harika çalışır.