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

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


person Hasan    schedule 14.11.2012    source источник
comment
Удалось ли вам найти какие-либо другие примеры с открытым исходным кодом?   -  person Coova    schedule 17.09.2014


Ответы (2)


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

ОБНОВЛЕНИЕ 2020: Вы можете просматривать все библиотеки обработки изображений, перечисленные в Android Asernal https://android-arsenal.com/tag/47

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

  2. Фотор SDK

  3. Creative SDK от Adobe

  4. Непосредственно обрабатывать растровое изображение.

    импортировать android.graphics.Bitmap;

    открытый класс ProcessingImage { частный Bitmap defaultImg; частный интервал idBitmap;

    public int getIdBitmap() { return idBitmap; }

    public void setIdBitmap (int idBitmap) { this.idBitmap = idBitmap; }

    общественное растровое изображение getDefaultImg () { return defaultImg; }

    public void setDefaultImg (Bitmap defaultImg) { this.defaultImg = defaultImg; }

    общедоступный ProcessingImage () { }

    общедоступная обработка растровых изображенийI(Bitmap myBitmap) { return myBitmap; }

    общественное растровое изображение 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 (эта библиотека анализирует наилучшее положение и размер обрезки, вычисляя некоторые функции; край, кожа тон, телосложение и лицо.)

person Trung Nguyen    schedule 14.11.2012
comment
Я скачал android-image-edit, и он не работает. Ошибка: Android требует уровня соответствия компилятора 5.0 или 6.0. Вместо этого нашел «1.7». Пожалуйста, используйте Android Tools › Fix Project Properties. - person MMakati; 19.10.2013
comment
android-›proerties-›javacompiler_.check включить настройки проектов.... выберите 1.6 @MMakati - person MGDroid; 23.12.2013

Во-первых, чтобы ответить на ваш вопрос, нет, вам не нужно использовать openGL. Что касается примеров, вот несколько с открытым исходным кодом:

iQuePhoto: https://github.com/iQueSoft/iQuePhoto

LeafPic: https://github.com/HoraApps/LeafPic

person user14519660    schedule 27.11.2020