1
1

More than 1 year has passed since last update.

UriからByteArrayに変換したい

Posted at

やりたいこと

サーバーに渡せるようにUriからbyteArrayに変換してMultiPartBodyにする前準備をしておきたい

コード

decoder.kt
val imageStream: InputStream? = context.contentResolver.openInputStream(imageUri)
val bitmap = BitmapFactory.decodeStream(imageStream)
val byteArrayOutputStream = ByteArrayOutputStream()
val compressFormat = when (mimeType) {
     MediaType.Jpeg -> {
          Bitmap.CompressFormat.JPEG
     }
     MediaType.Png -> {
          Bitmap.CompressFormat.PNG
     }
     else -> {
          throw IllegalStateException("media type not found")
     }
}
bitmap.compress(compressFormat, 100, byteArrayOutputStream)
byteArrayOutputStream.toByteArray()

MediaTypeは個別で用意しているenum classになっており、MediaTypeによりBitmap作成時のFormatが変わります
予期しないMediaTypeが帰ってきた場合、IllegalStateExceptionが帰ってくるようにしています
bitmap.compress()の引数は(Bitmap.CompressFormat,Int, OutputStream)
となっておりフォーマット方法クオリティByteArrayOutputStreamが実体となっています

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1