1.布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:padding="16dp"android:orientation="vertical"tools:context=".MainActivity"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><Buttonandroid:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:id="@+id/bt_encode"android:text="Encode Image"android:layout_marginEnd="4dp"/><Buttonandroid:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:id="@+id/bt_decode"android:text="Decode Image"android:layout_marginEnd="4dp"/></LinearLayout><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/text_view"android:maxLines="5"android:ellipsize="end"android:layout_marginTop="8dp"/><ImageViewandroid:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/image_view"android:scaleType="centerCrop"android:adjustViewBounds="true"android:layout_marginTop="8dp"/></LinearLayout>

2.java代码

package com.example.image2base64;import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;import android.Manifest;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.util.Base64;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;import java.io.ByteArrayOutputStream;
import java.io.IOException;public class MainActivity extends AppCompatActivity {Button btEncode,btDecode;TextView textView;ImageView imageView;String sImage;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);btEncode = findViewById(R.id.bt_encode);btDecode = findViewById(R.id.bt_decode);textView = findViewById(R.id.text_view);imageView = findViewById(R.id.image_view);btEncode.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {if(ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.READ_EXTERNAL_STORAGE)!= PackageManager.PERMISSION_GRANTED){ActivityCompat.requestPermissions(MainActivity.this,new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},100);}else{selectImage();}}});btDecode.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {byte[] bytes = Base64.decode(sImage,Base64.DEFAULT);Bitmap bitmap = BitmapFactory.decodeByteArray(bytes,0,bytes.length);imageView.setImageBitmap(bitmap);}});}@Overridepublic void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {super.onRequestPermissionsResult(requestCode, permissions, grantResults);if(requestCode == 100 && grantResults[0] == PackageManager.PERMISSION_GRANTED){selectImage();}else{Toast.makeText(this, "权限关闭", Toast.LENGTH_SHORT).show();}}@Overrideprotected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {super.onActivityResult(requestCode, resultCode, data);if(requestCode ==100 && resultCode == RESULT_OK && data!=null){Uri uri = data.getData();try {Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(),uri);ByteArrayOutputStream stream = new ByteArrayOutputStream();bitmap.compress(Bitmap.CompressFormat.JPEG,100,stream);byte[] bytes = stream.toByteArray();sImage = Base64.encodeToString(bytes,Base64.DEFAULT);textView.setText(sImage);} catch (IOException e) {e.printStackTrace();}}}private void selectImage(){textView.setText("");imageView.setImageBitmap(null);Intent intent = new Intent(Intent.ACTION_PICK);intent.setType("image/*");startActivityForResult(Intent.createChooser(intent,"Select Image"),100);}
}

3.manifest文件

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

android 图片转换成base64相关推荐

  1. java图片转换成base64_Java将图片转换成Base64字符串

    public classImageUtil {/*** 本地图片转换成base64字符串 *@paramimgFile * 图片本地路径 *@return */ public static Strin ...

  2. Flutter: 把本地相册图片转换成Base64的方法

    前言 在Flutter开发中,关于图片上传和展示也是常用必用的操作,尤其是在设置APP用户的头像信息,以及上传背景图的操作.关于Flutter开发中图片的上传和展示也是比较常用的操作,也有对应的组件和 ...

  3. js将图片转换成base64

    之前有个需求是把页面绘制成图片,上传到服务器中,我使用的 html2canvas .但是html页面当中含有图片,如果图片地址非本页面域名,在截图时就会存在跨域问题,导致截图失败.经过多方查找,发现把 ...

  4. HTML怎么转换base64教程,html5将图片转换成base64代码

    我们为什么要把图片转换成base64代码? base64是一种网络上常用的8bit字节代码的编码方式,base64可以用于http环境下传递较长的标识信息,同时可以放在url当中使用,因为base64 ...

  5. html5将图片转换成base64的实例代码

    这篇文章给大家介绍了如何利用html5将图片转换成base64,文中通过示例代码介绍的很详细,有需要的朋友们可以参考借鉴. base64编码介绍 base64是一种网络上常用的8bit字节代码的编码方 ...

  6. base64转html文件,图片转换成Base64编码集成到html文件

    首先为什么要这么做?  原因很简单这样可以减少与服务器的请求,当然对于一些浏览器并不支持,如IE8.通常用在手机版网站中,具体转化方法如下: 1.在线打开Base64的编码器将图片编码成Base64 ...

  7. python openslide 查看并保存切片的略缩图,并将Image图片转换成Base64

    说明 项目有个需求,需要显示病理切片的略缩图,查了一下api,实现代码挺简单的. 代码: 1,保存为本地图片 import openslide#切片路径 img_path = "./slic ...

  8. vue中怎么把图片转换成base64字符串 , 以及base64字符串怎么转换成图片路径

    一 , 项目根路径npm i vant , 安装vant组件库 , main.js中引入并注册vant 二 , 页面中使用 van-uploader上传文件的组件 第一种方法 : 在提交表单时拿到上传 ...

  9. base64 java php_利用PHP将图片转换成base64编码的实现方法

    先来说一下为什么我们要对图片base64编码 base64是当前网络上最为常见的传输8Bit字节代码的编码方式其中之一.base64主要不是加密,它主要的用途是把某些二进制数转成普通字符用于网络传输. ...

最新文章

  1. c 自定义实现string类 clear_基于scala2.13实现自定义的集合类 (下)
  2. 中科院计算所关于“木兰”语言问题处理情况说明
  3. spring-aop相关概念
  4. burp和xray联动
  5. Spring中的异步和事务性事件侦听器
  6. Linux 系统下命令 unrar 的英文版使用说明
  7. mysql连接费时_连接mysql和 建索引花费
  8. android jni示例_Android CollapsingToolbarLayout示例
  9. Atitit office ooxml 系列 excel的读取api 框架 poi的使用
  10. 将QLV 格式的视频转换为 mp4 格式
  11. 电脑开机密码忘记了怎么解除
  12. 如何用C语言将华氏温度转化为摄氏温度
  13. Android系统基础介绍
  14. Python将pdf转为png
  15. [树状数组+离散化] NamomoCamp Daily 6
  16. Polyspace应用:Bug Finder检测代码漏洞
  17. tongue twisters
  18. C#不四舍五入保留两位小数
  19. php 网页爬虫 cooking,scrapy爬取dmoz/Home
  20. SVG 入门指南(初学者入门必备)

热门文章

  1. 如何一键搬家WordPress网站 (All in One WP Migration插件)
  2. 硅片检测半导体运动台控制器的设计(二)
  3. C语言6度带和3度带计算公式,刚刚,测绘小哥哥告诉了我快速识别3度带、6度带的方法,安排!...
  4. HikariCP Unable to acquire JDBC Connection] with root cause问题查询
  5. Vue——使用 computed 计算属性
  6. Spring Security+Spring Data Jpa 强强联手,安全管理只有更简单!
  7. NX二次开发 布尔运算 UF_MODL_unite_bodies 布尔加
  8. php DHT22,很奇怪,IDE版本导致DHT22输出异常
  9. 2023通信、网络和信息系统国际大会(CNIS 2023)
  10. 在生活当中过得不如意也就算了