2015-08-04 3 views
7

мне было интересно, как я могу объединить несколько растровых изображений в Android, чтобы создать что-то вроде этого:Как слить растровые изображения в Android?

enter image description here

или что-то вроде этого: enter image description here

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

ответ

5

Я понял это:

public static Bitmap mergeToPin(Bitmap back, Bitmap front) { 
    Bitmap result = Bitmap.createBitmap(back.getWidth(), back.getHeight(), back.getConfig()); 
    Canvas canvas = new Canvas(result); 
    int widthBack = back.getWidth(); 
    int widthFront = front.getWidth(); 
    float move = (widthBack - widthFront)/2; 
    canvas.drawBitmap(back, 0f, 0f, null); 
    canvas.drawBitmap(front, move, move, null); 
    return result; 
} 

Хитрость, что переднее изображение имеет одинаковую ширину и высоту, и что, что высота/ширина соответствует ширине задних изображений (или масштабируется - я изменен это до 90% от первоначальной ширины штифта).

Не имеет значения, если вы наложили обведенный или квадратный штифт, если положение изображения (круга или квадрата) имеет равную ширину и высоту. Конечно, вам нужно создать круговое растровое изображение, если вы хотите добавить его к обведенному булавке :)

+0

отметьте ответ на этот вопрос, если ваша проблема решена. – ashwani

+0

Мне пришлось ждать два дня, прежде чем маркировать его, но спасибо за напоминание :) – dmacan23

5

Пробуйте эту функцию.

private Bitmap createSingleImageFromMultipleImages(Bitmap firstImage, Bitmap secondImage){ 

Bitmap result = Bitmap.createBitmap(firstImage.getWidth(), firstImage.getHeight(), firstImage.getConfig()); 
Canvas canvas = new Canvas(result); 
canvas.drawBitmap(firstImage, 0f, 0f, null); 
canvas.drawBitmap(secondImage, 10, 10, null); 
return result; 
} 

Надеюсь, это поможет.

Смежные вопросы