码迷,mamicode.com
首页 > 其他好文 > 详细

2:Bitmap和Base64转换

时间:2017-11-11 11:19:01      阅读:272      评论:0      收藏:0      [点我收藏+]

标签:sre   tac   you   ram   not   压缩   def   str   col   

import java.io.ByteArrayOutputStream;
import java.io.IOException;

import android.annotation.SuppressLint;
import android.graphics.Bitmap;
import android.graphics.Bitmap.CompressFormat;
import android.graphics.BitmapFactory;
import android.util.Base64;

public class Base64Utils {
    public static void gcBitmap(Bitmap bitmap) {
        if (bitmap != null && !bitmap.isRecycled()) {
            bitmap.recycle(); // 回收图片所占的内存
            bitmap = null;
            System.gc(); // 提醒系统及时回收
        }
    }

    /**
     * 
     * @Title: bitmapToBase64
     * @Description: TODO(Bitmap 转换为字符串)
     * @param @param bitmap
     * @param @return 设定文件
     * @return String 返回类型
     * @throws
     */

    @SuppressLint("NewApi")
    public static String bitmapToBase64(Bitmap bitmap) {

        // 要返回的字符串
        String reslut = null;

        ByteArrayOutputStream baos = null;

        try {

            if (bitmap != null) {

                baos = new ByteArrayOutputStream();
                /**
                 * 压缩只对保存有效果bitmap还是原来的大小
                 */
                bitmap.compress(CompressFormat.JPEG, 30, baos);

                baos.flush();
                baos.close();
                // 转换为字节数组
                byte[] byteArray = baos.toByteArray();

                // 转换为字符串
                reslut = Base64.encodeToString(byteArray, Base64.DEFAULT);
            } else {
                return null;
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {

            try {
                if (baos != null) {
                    baos.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }

        }
        return reslut;

    }

    /**
     * 
     * @Title: base64ToBitmap
     * @Description: TODO(base64l转换为Bitmap)
     * @param @param base64String
     * @param @return 设定文件
     * @return Bitmap 返回类型
     * @throws
     */
    public static Bitmap base64ToBitmap(String base64String) {
        /*
         * byte[] decode = Base64.decode(base64String, Base64.DEFAULT); YuvImage
         * yuvimage = new YuvImage(decode, ImageFormat.NV21, 20, 20, null);//
         * 20、20分别是图的宽度与高度 ByteArrayOutputStream baos = new
         * ByteArrayOutputStream(); yuvimage.compressToJpeg(new Rect(0, 0, 20,
         * 20), 80, baos);// 80--JPG图片的质量[0-100],100最高 byte[] jdata =
         * baos.toByteArray(); Bitmap bitmap =
         * BitmapFactory.decodeByteArray(jdata, 0, jdata.length);
         */

        byte[] decode = Base64.decode(base64String, Base64.DEFAULT);
        Bitmap bitmap = BitmapFactory.decodeByteArray(decode, 0, decode.length);

        return bitmap;
    }

 

2:Bitmap和Base64转换

标签:sre   tac   you   ram   not   压缩   def   str   col   

原文地址:http://www.cnblogs.com/wnpp/p/7816932.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!