2014-06-21 2 views
0

Для моего приложения я создал два растровых изображения в соответствии с моими требованиями.Слияние двух растровых данных

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

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

Для выполнения этой задачи я пишу следующий код.

orignalbitmap = orignalbitmap.copy(Config.ARGB_8888, true); 
Canvas savedCanvas = new Canvas(orignalbitmap); 
savedCanvas.setBitmap(logoBitmap); 
savedCanvas.drawBitmap(orignalbitmap, 0, 0, transPaint); 
savedCanvas.drawBitmap(logoBitmap, 0, 0, transPaint); 


try { 
    orignalbitmap.compress(CompressFormat.JPEG, 100, new FileOutputStream(new File("/mnt/sdcard/original.jpg"))); 
} catch (FileNotFoundException e) { 
    e.printStackTrace(); 
} 

Но в настоящее время я получил только свое исходное изображение, поскольку выход не прилагается к логотипу. Я хочу, чтобы изображение с логотипом также содержало данные в растровом изображении. Итак, как объединить обе данные растровых изображений, которые я не могу понять, пожалуйста, предоставьте некоторые рекомендации в этом.

ответ

1

использовать данную функцию для объединить два растровые изображение в одной битовой карте

public static Bitmap combineImages(Bitmap c, Bitmap s) 
{ 
    Bitmap cs = null; 

    int width, height = 0; 

    if(c.getWidth() > s.getWidth()) { 
     width = c.getWidth() + s.getWidth(); 
     height = c.getHeight(); 
    } else { 
     width = s.getWidth() + s.getWidth(); 
     height = c.getHeight(); 
    } 

    cs = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); 

    Canvas comboImage = new Canvas(cs); 

    comboImage.drawBitmap(c, 0f, 0f, null); 
    comboImage.drawBitmap(s, c.getWidth(), 0f, null); 

    return cs; 
} 
+0

Здесь я хочу, чтобы перекрывать два изображения, такие как расположение кадра. Думаю, теперь ты понял. – Siddharth