如何裁剪图像以删除其填充

How to clip an image to remove its padding

我正在显示来自 YouTube 的缩略图。这些图像的顶部和底部有黑色矩形。

我想显示没有那个矩形的图像。我如何设置垂直“填充”以删除黑色矩形。

Image(
       painter = rememberImagePainter("https://img.youtube.com/vi/RS6By_pE7uo/0.jpg"),
       modifier = Modifier
            .width(itemWidth)
            .height(photoImageHeight)
       contentScale = ContentScale.FillBounds
 )

将图像放在一个框内,该框的宽度与图像相同,但其高度减少了图像上方和下方黑条使用的高度量。然后使用 cropToBounds:

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        setContent {
            val w = 480f / LocalDensity.current.density * 2.7f
            val h = 360 / LocalDensity.current.density * 2.7f

            Box(
                modifier = Modifier
                    .requiredWidth(w.dp)
                    .requiredHeight(h.dp - 70.dp)
                    .clip(shape= RoundedCornerShape(30.dp))
            ) {
                Image(
                    modifier = Modifier
                        .requiredWidth(w.dp)
                        .requiredHeight(h.dp),
                    painter = rememberImagePainter(
                        data = "https://img.youtube.com/vi/RS6By_pE7uo/0.jpg",
                    ),
                    contentDescription = null,
                    contentScale = ContentScale.FillWidth,
                )
            }
        }
    }
}