Intereting Posts
Данные адаптера RecycleView отображаются неправильно при прокрутке слишком быстро Обнаружение направления прокрутки в адаптере (вверх / вниз) Импорт проекта в Android Studio из Eclipse Необходима перестройка после изменения файлов макета xml в Android Studio JSONException: нет значения для XYZ при попытке getString («XYZ») Как перемещать содержимое макета вне экрана Android Android Snackbar NullPointerException в фрагменте Android Studio: разница между src / androidTest и src / основными папками? Совместное изображение с другими приложениями Кнопка Android MediaController Play / Pause и Seekbar не обновляется Использует библиотеку событий, такую ​​как Otto или EventBus, рекомендуемый способ обработки отношений между действиями, фрагментами и фоновыми потоками Выделите искомый текст в элементах ListView Могу ли я связать сообщение об ошибке с TextInputLayout? Захват изображения с веб-сайта android Использование локального json-файла в Android

Как объединить несколько изображений в одно изображение в Android?

Я работаю над распределенным приложением android. Я разделил одно изображение, чтобы сказать 4 части, а затем обработал его. Теперь я хочу объединить 4 растровых изображения в одно изображение. Как я могу это сделать?

Bitmap[] parts = new Bitmap[4]; Bitmap result = Bitmap.createBitmap(parts[0].getWidth() * 2, parts[0].getHeight() * 2, Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(result); Paint paint = new Paint(); for (int i = 0; i < parts.length; i++) { canvas.drawBitmap(parts[i], parts[i].getWidth() * (i % 2), parts[i].getHeight() * (i / 2), paint); } 

Что-то вроде этого =)

Следующий фрагмент кода поможет вам объединить четыре растровых изображения в одном. Вызовите этот метод 3 раза, чтобы объединить четыре изображения.

Шаг 1. Объединение первых двух изображений

Шаг 2: Объедините переименование двух изображений

Шаг 3: Объедините два новых созданных растровых изображения

 public static Bitmap overlay(Bitmap bmp1, Bitmap bmp2) { Bitmap bmOverlay = Bitmap.createBitmap(bmp1.getWidth(), bmp1.getHeight(), bmp1.getConfig()); Canvas canvas = new Canvas(bmOverlay); canvas.drawBitmap(bmp1, new Matrix(), null); canvas.drawBitmap(bmp2, 0, 0, null); return bmOverlay; } 

Вам нужно создать функцию типа bitmap. То есть, он возвращает тип данных растрового изображения. Функция должна иметь аргумент типа Bitmap типа данных, который является массивом.

Скачать демо

Вы передадите свои изображения функции как массив растрового изображения. Это наша функция объединить не только четыре изображения, но и любой размер изображений.

 private Bitmap mergeMultiple(Bitmap[] parts){ Bitmap result = Bitmap.createBitmap(parts[0].getWidth() * 2, parts[0].getHeight() * 2, Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(result); Paint paint = new Paint(); for (int i = 0; i < parts.length; i++) { canvas.drawBitmap(parts[i], parts[i].getWidth() * (i % 2), parts[i].getHeight() * (i / 2), paint); } return result; } 

Наконец, вы закончили .. Подробнее здесь