如何在Android中保存运行时创建的位图?

斯泰西蓝

在我的应用程序中,用户可以上传一些图片,并且由于数据库大小的限制,我想将这些图像合并为仅创建一个图像,我可以这样做:

private Bitmap combineImageIntoOne(ArrayList<Bitmap> bitmap) {
            int w = 0, h = 0;
            for (int i = 0; i < bitmap.size(); i++) {
                    if (i < bitmap.size() - 1) {
                            w = bitmap.get(i).getWidth() > bitmap.get(i + 1).getWidth() ? bitmap.get(i).getWidth() : bitmap.get(i + 1).getWidth();
                    }
                    h += bitmap.get(i).getHeight();
            }

            Bitmap temp = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
            Canvas canvas = new Canvas(temp);
            int top = 0;
            for (int i = 0; i < bitmap.size(); i++) {
                    Log.d("HTML", "Combine: "+i+"/"+bitmap.size()+1);

                    top = (i == 0 ? 0 : top+bitmap.get(i).getHeight());
                    canvas.drawBitmap(bitmap.get(i), 0f, top, null);
            }
            return temp;
    }
德米特里·扎耶采夫(Dmitry Zaytsev)

Bitmap.compress是您要寻找的方法-它允许您保存Bitmap到所需的任何OutputStream内容。

bitmap.compress(Bitmap.CompressFormat.PNG, 100, new FileOutputStream(someFile));

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章