2012-02-17 19 views
8

Estoy trabajando en la pequeña aplicación de Android y quiero hacer un efecto en las imágenes, es decir, esbozo, monocromo, sepia, carbón, pintura al óleo, negar, Voltear, flop, relieve, etc. en la imagen y también cambiar el tono, saturación, brillo, contraste, nitidez de la imagen. ¿Hay alguna biblioteca de Android para dicha herramienta? Realmente aprecio cualquier ayuda.Android Image Processing Library

+0

Véase mi respuesta aquí: http://stackoverflow.com/questions/10662123/photo-editing-on-phonegap-android/10662148#10662148 –

+0

¿hay alguna solución mejor? – UserDev

Respuesta

4

tratar esta biblioteca

JJIL

+0

JJIL contiene un gran número de clases, estoy confundido y no entendí cómo usarlo ?? ¿podría sugerirme algún tutorial que utiliza la biblioteca JJIL de procesamiento de imágenes? por favor ayuda. – Raj21

+0

JJIL contiene un gran número de clases, estoy confundido y no entendí cómo usarlo ?? ¿podría sugerirme algún tutorial que utiliza la biblioteca JJIL de procesamiento de imágenes? por favor, responda pronto .. – Raj21

+1

intente leer esta documentación: http://code.google.com/p/jjil/wiki/IntroductionToJJIL?tm=6 – Vikram

0

efectos de imagen básicos se puede lograr mediante herramientas androide standart. Mire en paquetes android.graphics (y trabajan con formatos de imagen nativos y mapas de bits)

+0

Soy nuevo en Android por favor sugiérame algún tutorial que utiliza el efecto de imagen básica en Android. gracias de antemano. – Raj21

+0

Comience leyendo los tutoriales android oficiales y la documentación –

+0

ok amigo gracias lo intentaré ... – Raj21

1

Utilice el código de abajo para agregar contraste con el mapa de bits: El valor puede variar de 1 a 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; 
    } 

Uso esto para brillo efecto: El valor debe estar entre 1 y 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

Me pareció realmente útil. Muchas gracias. Los efectos se aplican muy rápido también – Amanni

+0

¿Qué es la tienda aquí? – Kedarnath

+0

La tienda es probablemente una clase utilizada para almacenar datos temporales y tiene una variable pública "lastBitmap". – raisahab