2013-11-14 65 views
3

我應用了多個androidjhlabs.jar過濾器及其工作。 這裏是工作的過濾器: GaussianFilter ContrastFilter InverFilter GrayScalFilter MarbleFilter WeaveFilter GainFilter SolarFilter HSBFilter 但我嘗試了一些其他的過濾器,不能給我正確的輸出一些圖像得到了轉換成黑色部分得到轉換這意味着我不知道適當的尺度,隨機性,數量,湍流和網格類型等。 我試過水過濾器,但它只適用於中心點意味着不在孔圖像。 這裏是代碼:圖片由安卓JHlabs過濾

public static Bitmap setWaterFilter(Bitmap src) 
{ 
int width=src.getWidth(); 

int height=src.getHeight(); 

int pixel; 

WaterFilter filter=new WaterFilter(); 

int[] bittoarr = AndroidUtils.bitmapToIntArray(src); 

int[] result=filter.filter(bittoarr, width, height); 

Bitmap applied = Bitmap.createBitmap(result, width, height, 

Config.ARGB_8888); 

return applied; 
} 

和我經過來源是這樣的:

Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.px); 
bitmap=Effects.setWaterFilter(bitmap); 
im.setImageBitmap(bitmap); 

任何一個知道如何解決it.means其他過濾器也很喜歡BoxBlur,農作物也。

+0

它在AndroidUtils類中導入的位置 – Ashok

回答

0

這是簡單;-)剛纔設置更多的參數來實現你想要一個像下面的exaple showen:

使用setRadius設置你的波半徑,使用setCenter指向波的中心,最小值是0和最大值爲1的圖像源的寬度和高度;

  WaterFilter waterFilter = new WaterFilter(); 
      waterFilter.setEdgeAction(TransformFilter.WRAP); 
      waterFilter.setRadius(350.0f); 
      waterFilter.setWavelength(8.0f); 
      waterFilter.setAmplitude(0.6f); 
      waterFilter.setCentre(0.5f, 0.5f); 
      int[] src65 = AndroidUtils.bitmapToIntArray(inter); 
      int width65 = inter.getWidth(); 
      int height65 = inter.getHeight(); 
      int[] dest65 = waterFilter.filter(src65, width65, height65); 
      Bitmap destBitmap65 = Bitmap.createBitmap(dest65, width65, height65, Bitmap.Config.ARGB_8888);