У меня есть два изображения, которые я хочу объединить в один. (Например, "House.png" поверх "street.png")
Как добиться этого в Android? Я просто хочу объединить изображения и экспортировать их в файл.
Этот пример Устанавливает изображение в ImageView, но я хочу его экспортировать.
Этот другой пример не работает в Android, поскольку классы недоступны.
Я бы попробовал что-то вроде:
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-го пустого растрового изображения, нарисуйте нижнее изображение на нем, а затем нарисуйте верхнее изображение над ним.
Что касается сохранения файла, вот несколько примеров: Сохранить растровое изображение в местоположении
Вы можете сделать это................
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;
}