Base64转图片,图片转Base64

图片验证码,本地随机数生成效果一样,后台说他们生成也行。(这样转图还是少用,特别是大图片的时候,常量字符串过长就很尴尬了)


public class Base64ImgUtilis {

/**

* 将图片转换成Base64编码的字符串

    * @param path

    * @return base64编码的字符串

*/

    public static StringimageToBase64(String path){

if(TextUtils.isEmpty(path)){

return null;

        }

InputStream is =null;

        byte[] data =null;

        String result =null;

        try{

is =new FileInputStream(path);

            //创建一个字符流大小的数组。

            data =new byte[is.available()];

            //写入数组

            is.read(data);

            //用默认的编码格式进行编码

            result = Base64.encodeToString(data,Base64.DEFAULT);

        }catch (IOException e){

e.printStackTrace();

        }finally {

if(null !=is){

try {

is.close();

                }catch (IOException e) {

e.printStackTrace();

                }

}

}

return result;

    }

/**

*base64编码字符集转化成图片文件。

    * @param base64Str

    * @param path 文件存储路径

    * @return 是否成功

*/

    public static boolean base64ToFile(String base64Str,String path){

byte[] data = Base64.decode(base64Str,Base64.DEFAULT);

        for (int i =0; i < data.length; i++) {

if(data[i] <0){

//调整异常数据

                data[i] +=256;

            }

}

OutputStream os =null;

        try {

os =new FileOutputStream(path);

            os.write(data);

            os.flush();

            os.close();

return true;

        }catch (FileNotFoundException e) {

e.printStackTrace();

return false;

        }catch (IOException e){

e.printStackTrace();

return false;

        }

}

public static BitmapstringtoBitmap(String string) {

//将字符串转换成Bitmap类型

        Bitmap bitmap =null;

        try {

byte[] bitmapArray;

            bitmapArray = Base64.decode(string.split(",")[1], Base64.DEFAULT);

            bitmap = BitmapFactory.decodeByteArray(bitmapArray, 0, bitmapArray.length);

        }catch (Exception e) {

e.printStackTrace();

        }

return bitmap;

    }

public static StringbitmaptoString(Bitmap bitmap) {

//将Bitmap转换成字符串

        String string =null;

        ByteArrayOutputStream bStream =new ByteArrayOutputStream();

        bitmap.compress(Bitmap.CompressFormat.PNG, 100, bStream);

        byte[] bytes = bStream.toByteArray();

        string = Base64.encodeToString(bytes, Base64.DEFAULT);

        return string;

    }

}

你可能感兴趣的:(Base64转图片,图片转Base64)