以下是一个使用 HTML、CSS 和 JavaScript 实现从视频中提取每个像素点颜色,将颜色放大 16 倍并填充用户输入文字的示例代码: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Video Pixel Color Text</title> <style> body { font-family: Arial, sans-serif; } input, button { margin: 10px 0; } canvas { border: 1px solid #000; } </style> </head> <body> <!-- 视频元素 --> <video id="video" width="320" height="240" controls> <source src="your-video.mp4" type="video/mp4"> Your browser does not support the video tag. </video> <!-- 输入文字的输入框 --> <input type="text" id="textInput" placeholder="请输入文字"> <!-- 触发处理的按钮 --> <button onclick="processVideo()">处理视频</button> <!-- 用于显示结果的画布 --> <canvas id="canvas" width="320" height="240"></canvas> <script> function processVideo() { // 获取视频元素 const video = document.getElementById('video'); // 获取输入的文字 const text = document.getElementById('textInput').value; // 获取画布元素 const canvas = document.getElementById('canvas'); // 获取 2D 绘图上下文 const ctx = canvas.getContext('2d'); // 创建一个临时画布用于处理视频帧 const tempCanvas = document.createElement('canvas'); tempCanvas.width = video.width; tempCanvas.height = video.height; const tempCtx = tempCanvas.getContext('2d'); // 绘制视频帧到临时画布 tempCtx.drawImage(video, 0, 0, video.width, video.height); // 获取临时画布的图像数据 const imageData = tempCtx.getImageData(0, 0, video.width, video.height); const data = imageData.data; // 清空主画布 ctx.clearRect(0, 0, canvas.width, canvas.height); // 遍历每个像素点 for (let y = 0; y < video.height; y++) { for (let x = 0; x < video.width; x++) { // 计算像素点的索引 const index = (y * video.width + x) * 4; // 获取像素点的颜色 const r = data[index]; const g = data[index + 1]; const b = data[index + 2]; const a = data[index + 3]; // 设置填充颜色 ctx.fillStyle = `rgba(${r}, ${g}, ${b}, ${a / 255})`; // 放大 16 倍绘制文字 ctx.font = '16px Arial'; ctx.fillText(text, x * 16, y * 16); } } } </script> </body> </html> ``` 代码说明: 1. HTML 部分: - 创建了一个视频元素用于播放视频,需要将 `src` 属性替换为实际的视频文件路径。 - 提供一个输入框让用户输入文字。 - 有一个按钮用于触发处理视频的操作。 - 一个画布元素用于显示处理后的结果。 2. JavaScript 部分: - `processVideo` 函数是核心函数,用于处理视频并将像素颜色应用到文字上。 - 创建一个临时画布,将视频帧绘制到临时画布上。 - 获取临时画布的图像数据,遍历每个像素点,获取其颜色。 - 设置填充颜色为当前像素点的颜色,将用户输入的文字放大 16 倍绘制到主画布上。 请确保将 `your-video.mp4` 替换为你实际的视频文件路径。 [2025-06-08 22:38:26 | AI问答 | 973点数解答]