2012-11-14 8 views
23

私はSDカードまたはカメラから写真を撮ることができるAndroidアプリを作成したいと思います。写真を撮った後、写真にテキストを追加したり、写真をトリミングしたり、.gifタイプのファイルを写真に追加したりするなど、編集する必要があります。写真を撮ることは問題ではありませんが、写真を編集するコードを書く方法を理解できません。私はこのためにOpenGLを使用する必要があるかどうかを知る必要があります。提案や役に立つリンクが必要です。Android Image Editor

+0

他の種類のオープンソースの例はありますか? –

答えて

52

あなたの質問はあまりにも曖昧です。私はいくつかのガイドを提供します。

  1. を使用しています。Aviary SDKは、Creative SDKになります。 iOSとWindowPhone7もサポートしています。アビエイターは、オリエンテーション、トリミング、シャープネス、赤目、白とびび、ステッカー、ドローイング、テキスト、ミーム(ベータ)、明るさ、彩度、コントラスト、カスタムオプションなどの機能をほとんど提供します。 SS。アドビ
  2. によって

  3. Fotor SDK
  4. Creative SDKは、直接ビットマップを処理します。

    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; 
    } 
    } 
    

    使用法:プロセスインディゴカラー:TintThePicture(180, myBitmap); プロセスグリーン色:TintThePicture(300, myBitmap);

  5. 使用android.media.effectが(API14
  6. Effect Pro
  7. Android-Image-Edit
  8. android-image-editor
  9. smartcrop-androidで提供されるこのライブラリますアナいくつかの特徴を計算することによって最良の作物の位置とサイズを溶解する。顔、肌の色合い、顔立ち、顔)
+0

本当にすばらしい答え。ありがとう –

+0

android-image-editをダウンロードしましたが動作しません。エラーは次のとおりです。Androidにコンパイラ準拠レベル5.0または6.0が必要です。代わりに '1.7'が見つかりました。 Android Tools> Fix Project Propertiesを使用してください。 – MMakati

+1

android-> proerties-> java compiler_.check enable projects setti .... select 1.6 @MMakati – MGDroid