js实现浏览器中图片框选指定位置马赛克代码

代码语言:html

所属分类:其他

代码描述:js实现浏览器中图片框选指定位置马赛克代码

代码标签: js 浏览器 图片 框选 指定 位置 马赛克 代码

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="utf-8" />
  <meta name="viewport" content="width=device-width,initial-scale=1" />
  <title>图片局部马赛克并下载</title>
  <style>
    :root {
      color-scheme: light dark;
      --bg: #f6f7f9;
      --fg: #1f2328;
      --primary: #2f81f7;
      --border: #d0d7de;
      --muted: #6e7781;
    }
    html, body {
      height: 100%;
      margin: 0;
      background: var(--bg);
      color: var(--fg);
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue",
                   "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", Arial, sans-serif;
    }
    .wrap {
      max-width: 1100px;
      margin: 24px auto 48px;
      padding: 0 16px;
    }
    h1 {
      font-size: 20px;
      margin: 4px 0 16px;
    }
    .toolbar {
      display: flex;
      flex-wrap: wrap;
      gap: 12px 16px;
      align-items: center;
      margin-bottom: 12px;
    }
    .file-label {
      position: relative;
      display: inline-flex;
      align-items: center;
      gap: 8px;
      padding: 8px 12px;
      border: 1px solid var(--border);
      border-radius: 8px;
      background: white;
      cursor: pointer;
      user-select: none;
    }
    .file-label input[type="file"] {
      position: absolute; inset: 0; opacity: 0; cursor: pointer;
    }
    .slider {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      color: var(--muted);
      white-space: nowrap;
    }
    input[type="range"] { vertical-align: middle; }
    button {
      padding: 8px 12px;
      border: 1px solid var(--border);
      border-radius: 8px;
      background: white;
      cursor: pointer;
    }
    button.primary {
      background: var(--primary);
      color: #fff;
      border-color: transparent;
    }
    button:disabled {
      opacity: 0.6;
      cursor: not-allowed;
    }
    .stage {
      position: relative;
      width: 100%;
      aspect-ratio: 16 / 9;
      background: #f0f2f5;
      border: 2px dashed #c5cbd3;
      border-radius: 10px;
      overflow: hidden;
      display: grid;
      place-items: center;
      transition: border-color .2s ease, background .2s ease;
    }
    .stage.has-image {
      /* [修复] 移除 aspect-ratio: auto; 并优化背景 */
      border-style: solid;
      background: none;
    }
    .stage.dragover {
      border-color: var(--primary);
      background: #eef5ff;
    }
    canvas {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      image-rendering: auto;
      touch-action: none; /* 避免触摸滚动干扰 */
    }
    #overlay { cu.........完整代码请登录后点击上方下载按钮下载查看

网友评论0