将 img 转换为 base64 kotlin android
Convert img to base64 kotlin android
**我想将图片转换成base64字符串。请在 android studio
中帮助我编写代码
这是我的代码,请帮助我使用 kotlin android
我尝试了很多方法,但我无法得到它
你们能帮我吗?
我还想知道我需要在哪个函数中将图像转换为 base64,图像存储在哪里,我直接从图库中获取图像
**
private var uploadImageLabelText: TextView? = null
private var uploadImageBox: RelativeLayout? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_support)
setStatusBarColorLight(R.color.dim_white)
uploadImageLabelText = getView(R.id.upload_image_label)
uploadImageBox = getView(R.id.upload_image_box)
uploadImageBox?.setOnClickListener {
requestExternalReadPermission()
private fun requestExternalReadPermission() {
if (ContextCompat.checkSelfPermission(
this,
Manifest.permission.READ_EXTERNAL_STORAGE
)
!= PackageManager.PERMISSION_GRANTED
) {
ActivityCompat.requestPermissions(
this,
arrayOf<String>
(Manifest.permission.READ_EXTERNAL_STORAGE),
FG_PERMISSIONS_REQUEST_READ_EXTERNAL_STORAGE
);
} else {
chooseFile()
}
}
private fun chooseFile() {
var chooseFile = Intent(Intent.ACTION_GET_CONTENT)
chooseFile.type = "*/*"
chooseFile = Intent.createChooser(chooseFile, "Select a file to
upload the image")
startActivityForResult(chooseFile,
SUPPORT_SCREEN_CHOOSE_UPLOAD_FILE_REQUEST_CODE)
}
override fun onActivityResult(requestCode: Int, resultCode: Int,
data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == SUPPORT_SCREEN_CHOOSE_UPLOAD_FILE_REQUEST_CODE &&
resultCode == RESULT_OK
) {
data?.data?.let { uri ->
uploadFileUri = uri
val cursor = contentResolver.query(uri, null, null, null,
null)
if (cursor != null) {
val nameIndex =
cursor.getColumnIndex(OpenableColumns.DISPLAY_NAME)
val sizeIndex =
cursor.getColumnIndex(OpenableColumns.SIZE)
cursor.moveToFirst()
val fileName = cursor.getString(nameIndex)
System.out.println(fileName)
setFileNameToUploadButton(fileName)
//saveFileToCache(cursor.getString(nameIndex))
} else {
val filePath = uri.path
var fileName = ""
val cut = filePath.lastIndexOf('/')
if (cut != -1) {
fileName = filePath.substring(cut + 1)
}
setFileNameToUploadButton(fileName)
System.out.println(fileName)
//saveFileToCache(fileName)
}
}
}
}
}
在你的onActivityResult()
中你可以使用这样的方式:
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (resultCode == RESULT_OK) {
val documentFile: DocumentFile = DocumentFile.fromSingleUri(this, data!!.data!!)!!
val string = data.data?.let { uri -> contentResolver.openInputStream(uri).use { it!!.readBytes() } }
//Base64.encodeToString(string, Base64.NO_WRAP)
}
}
此处:
Base64.encodeToString(string, Base64.NO_WRAP)
您可以将您的文件编码为 Base64 字符串并对其进行处理。希望对您有所帮助:)
**我想将图片转换成base64字符串。请在 android studio
中帮助我编写代码这是我的代码,请帮助我使用 kotlin android 我尝试了很多方法,但我无法得到它 你们能帮我吗? 我还想知道我需要在哪个函数中将图像转换为 base64,图像存储在哪里,我直接从图库中获取图像
**
private var uploadImageLabelText: TextView? = null
private var uploadImageBox: RelativeLayout? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_support)
setStatusBarColorLight(R.color.dim_white)
uploadImageLabelText = getView(R.id.upload_image_label)
uploadImageBox = getView(R.id.upload_image_box)
uploadImageBox?.setOnClickListener {
requestExternalReadPermission()
private fun requestExternalReadPermission() {
if (ContextCompat.checkSelfPermission(
this,
Manifest.permission.READ_EXTERNAL_STORAGE
)
!= PackageManager.PERMISSION_GRANTED
) {
ActivityCompat.requestPermissions(
this,
arrayOf<String>
(Manifest.permission.READ_EXTERNAL_STORAGE),
FG_PERMISSIONS_REQUEST_READ_EXTERNAL_STORAGE
);
} else {
chooseFile()
}
}
private fun chooseFile() {
var chooseFile = Intent(Intent.ACTION_GET_CONTENT)
chooseFile.type = "*/*"
chooseFile = Intent.createChooser(chooseFile, "Select a file to
upload the image")
startActivityForResult(chooseFile,
SUPPORT_SCREEN_CHOOSE_UPLOAD_FILE_REQUEST_CODE)
}
override fun onActivityResult(requestCode: Int, resultCode: Int,
data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == SUPPORT_SCREEN_CHOOSE_UPLOAD_FILE_REQUEST_CODE &&
resultCode == RESULT_OK
) {
data?.data?.let { uri ->
uploadFileUri = uri
val cursor = contentResolver.query(uri, null, null, null,
null)
if (cursor != null) {
val nameIndex =
cursor.getColumnIndex(OpenableColumns.DISPLAY_NAME)
val sizeIndex =
cursor.getColumnIndex(OpenableColumns.SIZE)
cursor.moveToFirst()
val fileName = cursor.getString(nameIndex)
System.out.println(fileName)
setFileNameToUploadButton(fileName)
//saveFileToCache(cursor.getString(nameIndex))
} else {
val filePath = uri.path
var fileName = ""
val cut = filePath.lastIndexOf('/')
if (cut != -1) {
fileName = filePath.substring(cut + 1)
}
setFileNameToUploadButton(fileName)
System.out.println(fileName)
//saveFileToCache(fileName)
}
}
}
}
}
在你的onActivityResult()
中你可以使用这样的方式:
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (resultCode == RESULT_OK) {
val documentFile: DocumentFile = DocumentFile.fromSingleUri(this, data!!.data!!)!!
val string = data.data?.let { uri -> contentResolver.openInputStream(uri).use { it!!.readBytes() } }
//Base64.encodeToString(string, Base64.NO_WRAP)
}
}
此处:
Base64.encodeToString(string, Base64.NO_WRAP)
您可以将您的文件编码为 Base64 字符串并对其进行处理。希望对您有所帮助:)