API 1から使用可能 https://developer.android.com/reference/android/graphics/BitmapFactory
API28以上から使用可能 https://developer.android.com/reference/android/graphics/ImageDecoder
UriからBitmapをつくる #
private void uriToBitmap(Uri selectedFileUri) {
try {
ParcelFileDescriptor parcelFileDescriptor =
getContentResolver().openFileDescriptor(selectedFileUri, "r");
FileDescriptor fileDescriptor = parcelFileDescriptor.getFileDescriptor();
Bitmap image = BitmapFactory.decodeFileDescriptor(fileDescriptor);
parcelFileDescriptor.close();
} catch (IOException e) {
e.printStackTrace();
}
}
SDカードから画像を読み込んでみる。 #
String sdPath = Environment.getExternalStorageDirectory().getAbsolutePath();
Bitmap image = BitmapFactory.decodeFile(sdPath+"/Pictures/hoge.png");
Uri指定:MediaStoreを使用 #
ContentPrividerを通した時にUri指定となり、ファイルパスと少々違ったやり方が必要になる。
ContentResolver cr = getContentResolver();
Bitmap image = MediaStore.Images.Media.getBitmap( cr, uri );
Uri指定:BitmapFactoryを使用
InputStream in = cr.openInputStream(uri);
Bitmap image = BitmapFactory.decodeStream(in);
in.close();
画像の読み込み #
https://developer.android.com/topic/performance/graphics/load-bitmap?hl=ja