Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 合并两个位图数据_Android_File_Canvas_Bitmap_Android Bitmap - Fatal编程技术网

Android 合并两个位图数据

Android 合并两个位图数据,android,file,canvas,bitmap,android-bitmap,Android,File,Canvas,Bitmap,Android Bitmap,对于我的应用程序,我已经根据我的要求创建了两个位图 一个用于经过某些图像处理的实际图像,另一个用于仅在左上角显示应用程序徽标的徽标位图 现在为了节省时间,我想合并这些位图,并生成一个JPEG文件作为输出 为了完成这项任务,我编写了以下代码 orignalbitmap = orignalbitmap.copy(Config.ARGB_8888, true); Canvas savedCanvas = new Canvas(orignalbitmap); savedCanvas.setBitmap(

对于我的应用程序,我已经根据我的要求创建了两个位图

一个用于经过某些图像处理的实际图像,另一个用于仅在左上角显示应用程序徽标的徽标位图

现在为了节省时间,我想合并这些位图,并生成一个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();
}

但目前我只得到了我的原始图像作为输出,没有附加标志。我想与标志的图像,也可以在标志位图的数据。因此,如何组合我无法理解的两个位图数据,请在这方面提供一些指导。

使用此功能在单个位图中组合两个位图

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; 
}

在这里,我想重叠两个图像,例如帧布局。我想你现在明白我的意思了。