Как скопировать меньшее растровое изображение в большее? - PullRequest
8 голосов
/ 01 марта 2010

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

(Если кому-то интересно, я хочу сделать это, чтобы иметь возможность повторно использовать некоторый код, написанный для обработки анимации с одним растровым изображением.)

Спасибо!

1 Ответ

14 голосов
/ 01 марта 2010

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

Bitmap makeBigBitmap(Bitmap srcBmps[]) {
    Bitmap wideBmp;
    Canvas wideBmpCanvas;
    Rect src, dest;

    // assume all of the src bitmaps are the same height & width
    wideBmp = Bitmap.createBitmap(srcBmps[0].getWidth() * srcBmps.length, 
        srcBmps[0].getHeight(), srcBitmaps[0].getConfig());

    wideBmpCanvas = new Canvas(wideBmp); 

    for (int i = 0; i < srcBmps.length; i++) {
         src = new Rect(0, 0, srcBmps[i].getWidth(), srcBmps[i].getHeight());
         dest = new Rect(src); 
         dest.offset(i * srcBmps[i].getWidth(), 0); 

         wideBmpCanvas.drawBitmap(srcBmps[i], src, dest, null); 
    }

    return wideBmp;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...