溢出隐藏在底部仅适用于复杂形状的图像

overflow hidden on the bottom only for an image in a complex shape

我正在尝试将图像放在一个复杂的形状中,并且仅在顶部不隐藏溢出。 使用边框半径创建形状:

shape: {
  backgroundColor: '#FFF',
  width: 500,
  height: 500,
  borderRadius: '70% 30% 30% 70% / 60% 40% 60% 40%',
  position: 'relative',
  marginTop: 200,
  paddingTop: 200,
  overflow: 'hidden'
},

<div class="shape">
  <div>
    <img src="path/to/image" alt="my-image" />
  </div>
</div>

我正在使用 React 的视差效果,所以我不会上传所有代码,但有 2 张图片展示我想要得到的东西:

使用两个元素构建它并使用 z-index

.shape {
  background-color: #FFF;
  width: 500px;
  margin:200px 20px;
  height: 500px;
  position: relative;
  z-index:0;
}
.shape:before,
.shape:after {
  content:"";
  position:absolute;
  top:0;
  left:0;
  right:0;
  bottom:0;
  border-radius: 70% 30% 30% 70% / 60% 40% 60% 40%;
  box-shadow:0 0 0 100vmax blue;
  clip-path:inset(50% -100vmax -100vmax); /* cut the top */
  z-index:1;
}
.shape:after {
  clip-path:inset(-100vmax -100vmax 50%); /* cut the bottom */
  z-index:-1;
}

img {
  position:fixed;
  margin-left:50px;
  margin-top:-100px;
}

body {
  min-height:200vh;
}
<div class="shape">
    <img src="https://picsum.photos/id/1074/300/600" alt="my-image" >
</div>