Наложение изображений в Android - PullRequest
1 голос
/ 25 июля 2011

У меня есть два изображения, которые я хочу объединить в одно. (Например, "House.png" поверх "street.png")

Как мне добиться этого в Android? Я просто хочу объединить изображения и экспортировать их в файл.

Этот пример Устанавливает изображение в ImageView, но я хочу его экспортировать.
Этот другой пример не работает в Android, так как классы недоступны.

Ответы [ 2 ]

3 голосов
/ 25 июля 2011

Я бы попробовал что-то вроде:

public static Bitmap mergeImages(Bitmap bottomImage, Bitmap topImage) {
    final Bitmap output = Bitmap.createBitmap(bottomImage.getWidth(), bottomImage
            .getHeight(), Config.ARGB_8888);
    final Canvas canvas = new Canvas(output);
    final Paint paint = new Paint();
    paint.setAntiAlias(true);

    canvas.drawBitmap(bottomImage, 0, 0, paint);
    canvas.drawBitmap(topImage, 0, 0, paint);

    return output;
}

(не проверял, я только что написал здесь, там могут быть некоторые простые ошибки)

По сути, вы создаете3-е пустое растровое изображение, нарисуйте нижнее изображение на нем, а затем нарисуйте верхнее изображение поверх него.

Что касается сохранения в файл, вот несколько примеров: Сохранить растровое изображение в местоположение

1 голос
/ 26 января 2014

Вы можете сделать это ...............

public Bitmap Overlay(Bitmap Bitmap1, Resources paramResources, Bitmap Bitmap2, int alpha)
    {
      Bitmap bmp1 = Bitmap.createScaledBitmap(Bitmap2, Bitmap1.getWidth(), Bitmap1.getHeight(), true);
      Bitmap bmp2 = Bitmap.createBitmap(Bitmap1.getWidth(), Bitmap1.getHeight(), Bitmap1.getConfig());
      Paint localPaint = new Paint();
      localPaint.setAlpha(alpha);
      Canvas localCanvas = new Canvas(bmp2);
      Matrix localMatrix = new Matrix();
      localCanvas.drawBitmap(Bitmap1, localMatrix, null);
      localCanvas.drawBitmap(bmp1, localMatrix, localPaint);
      bmp1.recycle();
      System.gc();
      return bmp2;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...