mediapipe实现实时摄像头手指把脸嘴巴拉长拉大橡胶特效互动代码
代码语言:html
所属分类:其他
代码描述:mediapipe实现实时摄像头手指把脸嘴巴拉长拉大橡胶特效互动代码
代码标签: mediapipe 实时 摄像头 手指 把脸 嘴巴 拉长 拉大 橡胶 特效 互动 代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>橡胶果实实时拉脸特效</title>
<!-- 引入 Tailwind CSS 构建现代动漫风面板 -->
<script src="https://cdn.tailwindcss.com"></script>
<!-- 引入 MediaPipe 核心库 -->
<script src="https://cdn.jsdelivr.net/npm/@mediapipe/camera_utils/camera_utils.js" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/@mediapipe/face_mesh/face_mesh.js" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/@mediapipe/hands/hands.js" crossorigin="anonymous"></script>
<style>
body {
background-color: #1a1a2e;
font-family: 'PingFang SC', system-ui, -apple-system, sans-serif;
}
/* 动漫黑框描边风格 */
.anime-border {
border: 4px solid #000;
box-shadow: 6px 6px 0px #000;
}
.anime-btn {
border: 3px solid #000;
box-shadow: 3px 3px 0px #000;
transition: all 0.1s ease;
}
.anime-btn:active {
transform: translate(2px, 2px);
box-shadow: 1px 1px 0px #000;
}
</style>
</head>
<body class="min-h-screen flex flex-col items-center justify-center p-4 md:p-8 text-white">
<!-- 顶部标题 -->
<div class="text-center mb-6 max-w-lg">
<h1 class="text-3xl md:text-4xl font-extrabold text-[#FFD369] tracking-wider uppercase" style="text-shadow: 3px 3px 0px #000, -1px -1px 0px #000;">
GOMU GOMU NO...
</h1>
<p class="text-xs md:text-sm text-gray-400 mt-2 font-medium">
实时动作捕捉:用单手食指和拇指“捏住”嘴角或脸颊往外拉,松开瞬间触发橡胶回弹!
</p>
</div>
<!-- 核心区域 -->
<div class="grid grid-cols-1 lg:grid-cols-12 gap-8 max-w-6xl w-full items-center">
<!-- 左侧:画布与摄像头容器 -->
<div class="lg:col-span-8 flex flex-col items-center">
<div class="relative anime-border bg-black rounded-lg overflow-hidden w-[640px] max-w-full aspect-[4/3]">
<!-- 主渲染画面 -->
<canvas id="outputCanvas" width="640" height="480" class="w-full h-full block transform scale-x-1"></canvas>
<!-- 隐藏的原始视频流(用于 MediaPipe 帧捕获) -->
<video id="webcam" autoplay playsinline class="absolute top-0 left-0 w-0 h-0 opacity-0"></video>
<!-- 初始化遮罩/加载提示 -->
<div id="loader" class="absolute inset-0 bg-[#16213e]/95 flex flex-col items-center justify-center z-10 transition-opacity duration-500">
<div class="w-12 h-12 border-4 border-[#FF9F1C] border-t-transparent rounded-full animate-spin mb-4"></div>
<p class="text-sm font-semibold tracking-wider text-yellow-400">正在载入 MediaPipe 视觉模型与初始化相机...</p>
<p class="text-xs text-gray-400 mt-2">首次加载可能需要10-20秒,请在浏览器弹窗中允许相机权限</p>
</div>
</div>
</div>
<!-- 右侧:交互参数与指示说明 -->
<div class="lg:col-span-4 space-y-6">
<!-- 指导卡片 -->
<div class="bg-[#16213e] anime-border p-5 rounded-lg space-y-4">
<h3 class="text-lg font-bold text-[#FF9F1C] border-b-2 border-black pb-2">💡 动作秘籍</h3>
<ul class="text-xs space-y-3 text-gray-300 leading-relaxed">
<li class="flex items-start gap-2">
<span class="bg-[#FF9F1C] text-black font-extrabold text-[10px] px-1.5 py-0.5 rounded">步骤 1</span>
<span>正对摄像头,伸手靠近自己的<b class="text-[#FF9F1C]">左/右嘴角</b>或<b class="text-[#FF9F1C]">脸颊</b>。</span>
</li>
<li class="flex items-start gap-2">
<span class="bg-[#FF9F1C] text-black font-extrabold text-[10px] px-1.5 py-0.5 rounded">步骤 2</span>
<span>将拇指与食指捏合(Pinch 动作),此时画面会锁定锚点。</span>
</li>
<li class="flex items-start gap-2">
<span class="bg-[#FF9F1C] text-black font-extrabold text-[10px] px-1.5 py-0.5 rounded">步骤 3</span>
<span>按住不放往外拉,脸部像素会跟随手平滑变形。</span>
</li>
<li class="flex items-start gap-2">
<span class="bg-[#FF9F1C] text-black font-extrabold text-[10px] px-1.5 py-0.5 rounded">步骤 4</span>
<span>松开手指,体验弹性物理抖动回弹!</span>
</li>
</ul>
</div>
<!-- 参数微调 -->
<div class="bg-[#16213e] anime-border p-5 rounded-lg space-y-4">
<h3 class="text-md font-bold text-white">⚙️ 橡胶参数调节</h3>
<div class=".........完整代码请登录后点击上方下载按钮下载查看















网友评论0