2012-11-14 15 views
23

Ich möchte eine Android App erstellen, wo ich ein Bild von der SD-Karte oder von der Kamera aufnehmen kann. Nachdem ich das Bild aufgenommen habe, muss ich es bearbeiten, z. B. Text in das Bild einfügen, das Bild zuschneiden und dem Bild eine .gif-Datei hinzufügen. Ein Bild zu machen ist nicht das Problem, aber ich kann nicht verstehen, wie man Code schreibt, um das Bild zu bearbeiten. Ich muss wissen, ob ich dafür OpenGL verwenden muss. Vorschläge und hilfreiche Links gesucht.Android Image Editor

+0

Haben Sie andere Open-Source-Beispiele gefunden? –

Antwort

52

Ihre Frage ist zu vage. Ich biete einen Führer an.

  1. Mit Aviary SDK wird jetzt Creative SDK. Es unterstützt auch iOS und WindowPhone7. Die Voliere bietet die meisten Funktionen wie Ausrichtung, Zuschneiden und Schärfe, Rote-Augen-Effekt, Aufhellung und Makel, Aufkleber, Zeichnung, Text und Meme (Beta), Helligkeit, Sättigung und Kontrast sowie benutzerdefinierte Optionen. SS.
  2. Fotor SDK
  3. Creative SDK von Adobe
  4. Directly Bitmap verarbeiten.

    import android.graphics.Bitmap; 
    
    public class ProcessingImage { 
    private Bitmap defaultImg; 
    private int idBitmap; 
    
    public int getIdBitmap() { 
        return idBitmap; 
    } 
    
    public void setIdBitmap(int idBitmap) { 
        this.idBitmap = idBitmap; 
    } 
    
    public Bitmap getDefaultImg() { 
        return defaultImg; 
    } 
    
    public void setDefaultImg(Bitmap defaultImg) { 
        this.defaultImg = defaultImg; 
    } 
    
    public ProcessingImage() { 
    } 
    
    public Bitmap processingI(Bitmap myBitmap) { 
        return myBitmap; 
    } 
    
    public Bitmap TintThePicture(int deg, Bitmap defaultBitmap) { 
    
        int w = defaultBitmap.getWidth(); 
        int h = defaultBitmap.getHeight(); 
    
        int[] pix = new int[w * h]; 
        defaultBitmap.getPixels(pix, 0, w, 0, 0, w, h); 
    
        double angle = (3.14159d * (double) deg)/180.0d; 
        int S = (int) (256.0d * Math.sin(angle)); 
        int C = (int) (256.0d * Math.cos(angle)); 
    
        int r, g, b, index; 
        int RY, BY, RYY, GYY, BYY, R, G, B, Y; 
    
        for (int y = 0; y < h; y++) { 
         for (int x = 0; x < w; x++) { 
          index = y * w + x; 
          r = (pix[index] >> 16) & 0xff; 
          g = (pix[index] >> 8) & 0xff; 
          b = pix[index] & 0xff; 
          RY = (70 * r - 59 * g - 11 * b)/100; 
          BY = (-30 * r - 59 * g + 89 * b)/100; 
          Y = (30 * r + 59 * g + 11 * b)/100; 
          RYY = (S * BY + C * RY)/256; 
          BYY = (C * BY - S * RY)/256; 
          GYY = (-51 * RYY - 19 * BYY)/100; 
          R = Y + RYY; 
          R = (R < 0) ? 0 : ((R > 255) ? 255 : R); 
          G = Y + GYY; 
          G = (G < 0) ? 0 : ((G > 255) ? 255 : G); 
          B = Y + BYY; 
          B = (B < 0) ? 0 : ((B > 255) ? 255 : B); 
          pix[index] = 0xff000000 | (R << 16) | (G << 8) | B; 
         } 
        } 
    
        Bitmap bm = Bitmap.createBitmap(w, h, defaultBitmap.getConfig()); 
        bm.setPixels(pix, 0, w, 0, 0, w, h); 
    
        pix = null; 
        return bm; 
    } 
    } 
    

    Usage: Prozess Indigo Farbe: TintThePicture(180, myBitmap); Verfahren Grüne Farbe: TintThePicture(300, myBitmap);

  5. Verwenden android.media.effect in API14
  6. Effect Pro
  7. Android-Image-Edit
  8. android-image-editor versehen ist
  9. smartcrop-android (Diese Bibliothek wird ana lyze beste Ernte Position und Größe durch Berechnung einiger Funktionen; Rand, Hautton, Staturation und Gesicht.)
+0

echte erstaunliche Antwort. danke –

+0

Ich habe das android-image-edit heruntergeladen und es funktioniert nicht. Der Fehler ist: Android erfordert Compiler-Compliance-Level 5.0 oder 6.0. Fand '1.7' statt. Bitte verwenden Sie Android Tools> Fix Projekteigenschaften. – MMakati

+1

android-> properties-> java compiler_.check aktivieren Projekte setti .... wählen Sie 1.6 @MMakati – MGDroid