zoukankan      html  css  js  c++  java
  • Android 将拼接好并加上边框的图片保存到内存卡中

    通过前两篇文章,问们学会了怎样拼接图片、给拼接好的图片加上边框样式,但这还不够,忙活了大半天 终于拼接好并给图片美化了,但是程序一旦推出,之前做的工作都白费了。这时我们会想,能不能把拼接好的图片保存起来,以便程序退出后我们仍然能够查看?当然可以。下面就讲讲具体怎样保存绘制好的Bitmap;

    操作步骤:

      1.得到我们创建的那个Bitmap(拼接好的那个)

    bitmap = newBitmap(bit1,bit2);

      2.将该Bitmap传递给要保存的方法

    //保存拼接好的bitmap
    saveBitmapToSdcard(bitmap);

    下面是具体保存方法和调用该方法的代码:

    1.保存代码

    /**
         * 将bitmap保存到内存卡中
         * @param bitmap
         */
        private void saveBitmapToSdcard(Bitmap bitmap){
            File file = new File("/mnt/sdcard/graphics");
            if(!file.exists()){//如果目录不存在就创建目录
                file.mkdir();
            }
            FileOutputStream out = null;
            try{
                out = new FileOutputStream(file);
                if(bitmap != null){
                    /*
                     * 三个参数的含义分别是:
                     * 1.保存图片的格式
                     * 2.标识图片质量0~100.质量越小压缩的越小(这里设置100标识不压缩)。另外如果图片是png格式,压缩是无损的,将忽略此参数(设置无效)
                     * 3.向OutputStream写入图片数据
                     */
                    bitmap.compress(CompressFormat.JPEG, 100, out);
                    out.flush();
                }
            }catch(Exception e){
                e.printStackTrace();
            }finally{
                try{
                    if(out != null){
                        out.close();
                    }
                }catch(Exception e){
                    e.printStackTrace();
                }
            }
        }

    2.调用代码:这个地方自己可以随意写在任意可能的地方。但是要注意重新开启一个新的线程来操作IO流。另外还要加上操作内存卡的权限

    public JointBitmapView(Context context,Bitmap bit1,Bitmap bit2) {
            super(context);
            bitmap = newBitmap(bit1,bit2);
            new Thread(){
                public void run() {
                    //保存拼接好的bitmap
                    saveBitmapToSdcard(bitmap);
                };
            }.start();
            
        }

    3.备注:如果需要看完整代码,需要参考上两篇博客的代码。

    http://www.cnblogs.com/tony-yang-flutter/p/3559866.html

  • 相关阅读:
    [NOIP2017 TG D2T2]宝藏(模拟退火)
    [洛谷P1337][JSOI2004]平衡点 / 吊打XXX
    [洛谷P4940]Portal2
    [CF1073E]Segment Sum
    [CF1066C]Books Queries
    [CF1065C]Make It Equal
    [洛谷P3469][POI2008]BLO-Blockade
    网络模型 ------->MobileNet-v3
    C++--------------------->>>>>>cmakelist的编写
    C++ ----------------》》》》》cmake list的
  • 原文地址:https://www.cnblogs.com/tony-yang-flutter/p/3560433.html
Copyright © 2011-2022 走看看