2012-02-17 161 views
8

我正在研究小型android應用程序,並且我想對圖像,即素描,單色,棕褐色,木炭,油畫,否定,翻轉,翻牌,浮雕等效果在圖像上做一個效果,色調,飽和度,亮度,對比度,圖像清晰度。 有沒有這樣的工具的任何Android庫。 我真的很感激任何幫助。Android圖像處理庫

+0

見我的答案在這裏:HTTP:/ /stackoverflow.com/questions/10662123/photo-editing-on-phonegap-android/10662148#10662148 – 2012-05-19 14:26:40

+0

有什麼最好的解決方案? – UserDev 2014-05-21 06:22:06

回答

4

試試這個庫

JJIL

+0

JJIL包含了大量的類,我很困惑,我不知道如何使用它?你能否給我推薦一些使用圖像處理JJIL庫的教程。請幫忙。 – Raj21 2012-02-22 09:14:22

+0

JJIL包含了大量的類,我很困惑,我不明白如何使用它?你能否給我推薦一些使用圖像處理JJIL庫的教程。請儘快回覆.. – Raj21 2012-02-24 09:51:11

+1

嘗試閱讀本文檔:http://code.google.com/p/jjil/wiki/IntroductionToJJIL?tm = 6 – Vikram 2012-02-24 09:56:27

0

基本圖像效果可以通過非標準Android的工具來實現。考慮android.graphics包(它們與本地圖像格式和位圖工作)

+0

我是新來的android請建議我一些教程,在Android中使用基本的圖像效果。 thanx提前。 – Raj21 2012-02-22 09:16:55

+0

首先閱讀官方的Android教程和文檔 – 2012-02-22 09:46:30

+0

好吧,哥們,謝謝我試試.. – Raj21 2012-02-22 12:20:52

1

使用下面的代碼來對比增加了位:值的範圍從1到100

public static Bitmap AdjustContrast(Bitmap original, float Value){ 
     Value          = (100.0f + Value)/100.0f; 
     Value *= Value; 
     Bitmap newBitmap       = Bitmap.createBitmap(original.getWidth(), original.getHeight(),original.getConfig()); 
     int[] argb         = new int[original.getWidth() * original.getHeight()]; 
     original.getPixels(argb, 0, original.getWidth(), 0, 0, original.getWidth(), original.getHeight()); 
     for (int i = argb.length - 1; i >= 0; --i) { 
     int alpha         = argb[i] >> 24; 
     int red          = (argb[i] >> 16) & 0xFF; 
     int green         = (argb[i] >> 8) & 0xFF; 
     int blue         = argb[i] & 0xFF;   
     float Red         = red/255.0f; 
     float Green         = green/255.0f; 
     float Blue         = blue/255.0f; 
     Red           = (((Red - 0.5f) * Value) + 0.5f) * 255.0f; 
     Green          = (((Green - 0.5f) * Value) + 0.5f) * 255.0f; 
     Blue          = (((Blue - 0.5f) * Value) + 0.5f) * 255.0f; 
     int iR          = (int)Red; 
     iR           = iR > 255 ? 255 : iR; 
     iR           = iR < 0 ? 0 : iR; 
     int iG          = (int)Green; 
     iG           = iG > 255 ? 255 : iG; 
     iG           = iG < 0 ? 0 : iG; 
     int iB          = (int)Blue; 
     iB           = iB > 255 ? 255 : iB; 
     iB           = iB < 0 ? 0 : iB;     
     int composite        = (alpha << 24) | (iR << 16) | (iG << 8) | iB; 
     argb[i]          = composite; 
     } 
     newBitmap.setPixels(argb, 0, original.getWidth(), 0, 0, original.getWidth(), original.getHeight()); 
     Store.lastBitmap       = newBitmap; 
     return newBitmap; 
    } 

使用此亮度效果:值應介於1到100之間

public static Bitmap makeBrightnessBitmap(Bitmap original, int brightness){ 
     Bitmap newBitmap       = Bitmap.createBitmap(original.getWidth(), original.getHeight(),original.getConfig()); 
     int[] argb         = new int[original.getWidth() * original.getHeight()]; 
     original.getPixels(argb, 0, original.getWidth(), 0, 0, original.getWidth(), original.getHeight()); 
     for (int i = argb.length - 1; i >= 0; --i) { 
      int alpha        = argb[i] >> 24; 
      int red         = (argb[i] >> 16) & 0xFF; 
      int green        = (argb[i] >> 8) & 0xFF; 
      int blue        = argb[i] & 0xFF;      
      int red2        = red + brightness; 
      if (red2>0xFF) red2      = 0xFF; 
      if (red2<0) red2      = 0; 
      int green2        = green + brightness; 
      if (green2>0xFF) green2     = 0xFF; 
      if (green2<0) green2     = 0; 
      int blue2        = blue + brightness; 
      if (blue2>0xFF) blue2     = 0xFF; 
      if (blue2<0) blue2      = 0;     
      int composite       = (alpha << 24) | (red2 << 16) | (green2 << 8) | blue2; 
      argb[i]         = composite; 
     } 
     newBitmap.setPixels(argb, 0, original.getWidth(), 0, 0, original.getWidth(), original.getHeight()); 
     Store.lastBitmap       = newBitmap; 
     return newBitmap; 
    } 
+0

發現這真的很有幫助。非常感謝。效果也非常快速應用 – Amanni 2014-02-21 15:02:44

+0

這裏的商店是什麼? – Kedarnath 2014-05-20 08:21:03

+0

商店可能是一個用於存儲臨時數據的類,並且具有一個公共變量「lastBitmap」。 – raisahab 2017-02-22 07:17:44