#android #android-jetpack-compose
Вопрос:
Карта изображений загружается и изображение с
ImageBitmap.imageResource(
LocalContext.current.resources,
R.drawable.landscape1
)
также в нем есть функция, которую можно вызвать с некоторыми параметрами
ImageBitmap(
width = 300,
height = 300,
config = ImageBitmapConfig.Argb8888,
hasAlpha = true,
colorSpace = ColorSpaces.Srgb
)
он возвращает и опустошает растровое изображение без данных пикселей, возможно ли создать растровое изображение с некоторыми конкретными конфигурациями?
Есть ли что-то подобное для ImageBitmap?
val option = BitmapFactory.Options()
option.inPreferredConfig = Bitmap.Config.ARGB_8888
val bitmap: Bitmap = BitmapFactory.decodeResource(
LocalContext.current.resources,
R.drawable.landscape1,
option
)
Ответ №1:
Вы можете конвертировать Bitmap
в ImageBitmap
:
val option = BitmapFactory.Options()
option.inPreferredConfig = Bitmap.Config.ARGB_8888
val bitmap = BitmapFactory.decodeResource(
LocalContext.current.resources,
R.drawable.test,
option
).asImageBitmap()
Обратите внимание, что на каждую повторную композицию уйдет значительное количество времени, поэтому вы, вероятно, захотите обернуть ее remember
Комментарии:
1. Ваш ответ верен, но поскольку для ImageBitmap существует аналогичная функция с конфигурациями, я задаюсь вопросом, есть ли такая функция для ImageBitmap без какого-либо преобразования. И в любом случае, какой смысл иметь пустую карту изображений?
2. @Thracian Единственное применение этой забавы, которое я нашел, — это вот это . Похоже, он просто предназначался для создания пустого растрового изображения, которое будет использоваться для холста в будущем. В любом случае, если вы посмотрите на источники обоих
ImageBitmap(width, height, ..)
, иasImageBitmap()
вы увидите, чтоImageBitmap
это всего лишь оболочка дляBitmap
.