2012-10-21 21 views
0

你能回答Android的jhlabs圖像庫的Crystalize或Pointilize濾鏡的例子嗎?我沒有按照我的風格編寫代碼,但它不起作用。 :P如何在Android中使用Jhlabs圖像庫的Crystalize或Pointilize濾鏡?

以下代碼是我寫的。它不起作用。我不知道爲什麼代碼不起作用。

你能告訴我原因嗎?

PointillizeFilter filter = new PointillizeFilter(); 
    filter.setEdgeColor(Color.BLACK); 
    filter.setScale(10f); 
    filter.setRandomness(0.1f); 
    filter.setAmount(0.1f); 
    filter.setFuzziness(0.1f); 
    filter.setTurbulence(10f); 
    filter.setGridType(PointillizeFilter.SQUARE); 
    int[] src = AndroidUtils.bitmapToIntArray(artWork); 
    filter.filter(src, width, height); 
    Bitmap destImage = Bitmap.createBitmap(src, width, height, Config.ARGB_8888); 

回答

2

當你調用的方法filter(src,width,height)其分配給src然後代碼將工作。因爲此方法返回JHLabs庫中的IntArray。所以,代碼將是:

PointillizeFilter filter = new PointillizeFilter(); 
filter.setEdgeColor(Color.BLACK); 
filter.setScale(10f); 
filter.setRandomness(0.1f); 
filter.setAmount(0.1f); 
filter.setFuzziness(0.1f); 
filter.setTurbulence(10f); 
filter.setGridType(PointillizeFilter.SQUARE); 
int[] src = AndroidUtils.bitmapToIntArray(artWork); 
src=filter.filter(src, width, height); 
Bitmap destImage = Bitmap.createBitmap(src, width, height, Config.ARGB_8888); 
+0

謝謝你的編輯.. –

0

這是有效的。

PointillizeFilter pointillizeFilter = new PointillizeFilter(); 
pointillizeFilter.setEdgeThickness(0.45f); 
pointillizeFilter.setFadeEdges(false); 
pointillizeFilter.setEdgeColor(Color.GRAY); 
pointillizeFilter.setFuzziness(1.0f); 
int[] src47 = AndroidUtils.bitmapToIntArray(inter); 
int width47 = inter.getWidth(); 
int height47 = inter.getHeight(); 
int[] dest47 = pointillizeFilter.filter(src47, width47, height47); 
Bitmap destBitmap47 = Bitmap.createBitmap(dest47, width47, height47, Bitmap.Config.ARGB_8888);