объединение двух png файлов в андроиде

У меня есть два png файлов изображений, которые я хотел бы, чтобы мое приложение для Android объединило программно в один png файл изображения, и задаюсь вопросом, возможно ли сделать так? если так, что я хотел бы сделать, просто накладывают их друг на друге для создания одного файла.

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

действительно ли это возможно сделать программно в андроиде и как так?

17
задан John 29 April 2010 в 16:36
поделиться

4 ответа

Я уже некоторое время пытаюсь понять это.

Вот (по сути) код, который я использовал, чтобы заставить его работать.

// Get your images from their files
Bitmap bottomImage = BitmapFactory.decodeFile("myFirstPNG.png");
Bitmap topImage = BitmapFactory.decodeFile("myOtherPNG.png");

// As described by Steve Pomeroy in a previous comment, 
// use the canvas to combine them.
// Start with the first in the constructor..
Canvas comboImage = new Canvas(bottomImage);
// Then draw the second on top of that
comboImage.drawBitmap(topImage, 0f, 0f, null);

// comboImage is now a composite of the two. 

// To write the file out to the SDCard:
OutputStream os = null;
try {
    os = new FileOutputStream("/sdcard/DCIM/Camera/" + "myNewFileName.png");
    comboImage.compress(CompressFormat.PNG, 50, os)
} catch(IOException e) {
    e.printStackTrace();
}

РЕДАКТИРОВАТЬ:

была опечатка, Итак, я изменил

image.compress (CompressFormat.PNG, 50, os)

на

bottomImage.compress (CompressFormat.PNG, 50, os)

32
ответ дан 30 November 2019 в 11:51
поделиться

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

0
ответ дан 30 November 2019 в 11:51
поделиться

Если у них есть прозрачные части, то если вы рисуете один поверх другого, будут перекрываться только непрозрачные части. Это зависит от вас. расположите растровые изображения по своему усмотрению.

Для отдельной проблемы повторного сохранения изображения в PNG используйте bitmap.compress ().

0
ответ дан 30 November 2019 в 11:51
поделиться

Вы можете делать смешивание. Это не относится к Android. Это просто универсальная обработка изображений.

EDIT:

Вы можете найти эти статьи, примеры и код полезными:

http://www.jhlabs.com/ip/

http://kfb-android.blogspot.com/2009/04/image-processing-in-android.html

http://code.google.com/p/jjil/

Обработка изображений на Android

4
ответ дан 30 November 2019 в 11:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: