in android/src/main/cpp/spectrumjni/io/JniBitmapImageSource.cpp [24:53]
image::Specification imageSpecificationFromBitmap(
facebook::jni::alias_ref<jni::JBitmap> jBitmap) {
SPECTRUM_ENFORCE_IF(!jBitmap);
AndroidBitmapInfo bitmapInfo;
const int rc = AndroidBitmap_getInfo(
facebook::jni::Environment::current(), jBitmap.get(), &bitmapInfo);
SPECTRUM_ERROR_FORMAT_IF(
rc != ANDROID_BITMAP_RESULT_SUCCESS,
io::error::ImageSourceFailure,
"AndroidBitmap_getInfo_returned_%d",
rc);
SPECTRUM_ERROR_FORMAT_IF(
bitmapInfo.format != ANDROID_BITMAP_FORMAT_RGBA_8888,
io::error::ImageSourceFailure,
"AndroidBitmap_unsupported_pixel_format_%d",
bitmapInfo.format);
return image::Specification{
.size =
image::Size{
.width = bitmapInfo.width,
.height = bitmapInfo.height,
},
.format = image::formats::Bitmap,
.pixelSpecification = image::pixel::specifications::RGBA,
.orientation = image::Orientation::Up,
.metadata = {},
};
}