Подтвердить что ты не робот

Редактор изображений Android

Я хочу создать приложение для Android, где я могу сделать снимок с SD-карты или с камеры. Сделав снимок, я должен отредактировать его, например, добавить текст в изображение, обрезать картинку, добавить файл типа .gif в изображение. Съемка не проблема, но я не могу понять, как писать код для редактирования изображения. Мне нужно знать, должен ли я использовать OpenGL для этого. Предложения и полезные ссылки.

4b9b3361

Ответ 1

Ваш вопрос слишком расплывчатый. Я предоставляю некоторые рекомендации.

  • Использование Aviary SDK теперь станет Creative SDK. Он также поддерживает iOS и WindowPhone7. Вольер обеспечивает большую часть функций, таких как ориентация, обрезка и резкость, красные глаза, отбеливание и блеск, наклейки, рисование, текст и мему (бета), яркость, насыщенность и контрастность и пользовательские параметры. SS.
  • Fotor SDK
  • Creative SDK от Adobe
  • Непосредственно обработать растровое изображение.

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

  • Использовать android.media.effect предоставляется в API14
  • Эффект Pro
  • Android-Image-Edit
  • android-image-editor
  • smartcrop-android (Эта библиотека будет анализировать лучшие позиции и размер урожая, вычисляя некоторые функции: край, тон кожи, статую и лицо. )