【问题标题】:Merge two bitmap data合并两个位图数据
【发布时间】:2014-06-21 06:19:01
【问题描述】:

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

一个用于经过一些图像处理的实际图像和第二个仅在左上角显示应用程序徽标的徽标位图。

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

但目前我只得到了我的原始图像作为输出,没有附加徽标。我想要带有徽标的图像以及徽标位图中可用的数据。那么如何结合我无法理解的两个位图数据所以请在此提供一些指导。

【问题讨论】:

    标签: android file canvas bitmap android-bitmap


    【解决方案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; 
    }
    

    【讨论】:

    • 这里我想重叠两张图片比如框架布局。我想现在你明白我的意思了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-29
    • 2014-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多