2012-02-17 20 views
8

Sto lavorando su una piccola app per Android e voglio fare un effetto sulle immagini, ad esempio schizzo, monocromia, seppia, carboncino, pittura ad olio, negazione, Flip, flop, emboss, ecc. tonalità, saturazione, luminosità, contrasto, nitidezza dell'immagine. Esiste una libreria Android per tale strumento. Apprezzo davvero qualsiasi aiuto.Libreria di elaborazione immagini Android

+0

Vedere la mia risposta qui: http://stackoverflow.com/questions/10662123/photo-editing-on-phonegap-android/10662148#10662148 –

+0

c'è qualche soluzione migliore? – UserDev

risposta

4

provare questa libreria

JJIL

+0

JJIL contiene un enorme numero di classi, sono confuso e non ho capito come usarlo ?? potresti per favore suggerirmi qualche tutorial che usi la libreria JJIL per l'elaborazione delle immagini. per favore aiuto. – Raj21

+0

JJIL contiene un enorme numero di classi, sono confuso e non ho capito come usarlo ?? potresti per favore suggerirmi qualche tutorial che usi la libreria JJIL per l'elaborazione delle immagini. per favore rispondi presto .. – Raj21

+1

prova a leggere questa documentazione: http://code.google.com/p/jjil/wiki/IntroductionToJJIL?tm=6 – Vikram

0

effetti di immagine di base possono essere raggiunti standart strumenti di Android. Guardate in android.graphics pacchetti (e funzionano con i formati immagine nativi e bitmap)

+0

Sono nuovo ad Android per favore suggeriscimi qualche tutorial che usi l'effetto immagine di base in Android. grazie in anticipo – Raj21

+0

Inizia leggendo tutorial e documentazione Android ufficiali –

+0

ok amico grazie ci proverò .. – Raj21

1

Usa il codice qui sotto per aggiungere contrasto con il bitmap: Il valore può variare da 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; 
    } 

Utilizzare questo per la luminosità effetto: il valore deve essere compreso tra 1 e 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

Trovato molto utile. Molte grazie. Anche gli effetti sono applicati molto velocemente – Amanni

+0

Cos'è lo Store qui? – Kedarnath

+0

Store è probabilmente una classe utilizzata per memorizzare dati temporanei e ha una variabile pubblica "lastBitmap". – raisahab