ImageBitmapExt.kt 1.0 KB

1234567891011121314151617181920212223242526272829303132
  1. package org.mjdev.desktop.extensions
  2. import android.graphics.Bitmap
  3. import androidx.compose.ui.graphics.ImageBitmap
  4. import androidx.compose.ui.graphics.asAndroidBitmap
  5. import androidx.compose.ui.graphics.asImageBitmap
  6. import coil3.request.ImageRequest
  7. import coil3.toBitmap
  8. import okio.Path
  9. import org.mjdev.desktop.context.IDesktopContext
  10. @Suppress("EXPECT_ACTUAL_CLASSIFIERS_ARE_IN_BETA_WARNING")
  11. actual object ImageBitmapExt {
  12. actual suspend fun IDesktopContext.loadPicture(src: Any?): ImageBitmap? =
  13. runCatching {
  14. ImageRequest
  15. .Builder(platformContext!!)
  16. .data(
  17. when (src) {
  18. is Path -> src.toFile()
  19. else -> src.toString()
  20. },
  21. ).build()
  22. .let { req ->
  23. imageLoader
  24. ?.execute(req)
  25. ?.image
  26. ?.toBitmap()
  27. ?.asImageBitmap()
  28. }
  29. }.getOrNull()
  30. }