image::Specification imageSpecificationFromBitmap()

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 = {},
  };
}