【问题标题】:How to save a run-time-created bitmap in Android?如何在 Android 中保存运行时创建的位图?
【发布时间】:2017-04-02 01:44:48
【问题描述】:

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

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

【问题讨论】:

    标签: android image bitmap


    【解决方案1】:

    Bitmap.compress 是您正在寻找的方法 - 它允许您将 Bitmap 保存到您想要的任何 OutputStream

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

    【讨论】:

    • 非常感谢!!但是我在哪里可以找到图片呢?
    • 在我的示例中它位于someFile(即java.io.File
    • 位置由someFile指定,正如我刚才所说的。
    猜你喜欢
    • 2015-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多